PHP:如何从关联数组中复制元素并将它们放在数组的开头?

And*_*rew 0 php arrays

我将在选择菜单中使用一系列国家/地区:

array(
    [0] => " -- Select -- "
    [1] => "Afghanistan"
    [3] => "Albania"
    [4] => "Algeria"
    [39] => "Canada"
    [47] => "USA"
)
//etc...
Run Code Online (Sandbox Code Playgroud)

我想复制加拿大和美国条目的创建副本,并将它们放在我的阵列的前面.所以数组应该看起来像这样:

array(
    [0] => " -- Select -- "
    [47] => "USA"
    [39] => "Canada"
    [1] => "Afghanistan"
    [3] => "Albania"
    [4] => "Algeria"
    [39] => "Canada"
    [47] => "USA"
)
//etc...
Run Code Online (Sandbox Code Playgroud)

数组键对应于数据库中的ID,因此我无法更改键.我怎样才能做到这一点?

我意识到这是不可能的.当您尝试使用重复键在数组中设置值时,它会覆盖第一个键.我想出了一个不同的解决方案,但已经接受了最高级别的答案.

mar*_*vin 5

您可以使用二维数组,而不是使用一维数组作为id => value

$countries = array(
    0 => array(
                   'country_id' => 47,
                   'country' => 'USA'
               ),
    1 => array(
                   'country_id' => 39,
                   'country' => 'Canada'
               ),
    2 => array(
                   'country_id' => 1,
                   'country' => 'Afghanistan'
               ),
    ......
);
Run Code Online (Sandbox Code Playgroud)