2010-05-05 122 views
2
1=>america,2=>India,3=>england 

以上是我的关联数组。我如何将3 =>英格兰带到阵列的前面?向PHP关联数组添加元素

+0

由于各种各样的答案显示,有做这个特定的情况下,不止一种方法。这将有助于了解你实际上想要达到的目标 - 你想要在前面选择数值指数最高的那个,还是只把最后一个要素移到前面,或者你想要“3 =>英格兰”到前面无论它在阵列中哪里?还是其他什么东西? – 2010-05-05 11:05:53

+2

这不是一个关联数组,它是一个索引数组,虽然在实践中,PHP imlpements将数组索引为关联数组。 – symcbean 2010-05-05 11:50:32

回答

1
$temp = myArray[3]; 
$myArray[3] = $myArray[2]; 
$myArray[2] = $myArray[1]; 
$myArray[1] = $temp; 
2

您可以使用array_unshift函数。

$array = array('americ', 'India'); 
array_unshift($array, 'englans'); 
print_r($array); 

输出:

Array 
(
    [0] => englans 
    [1] => americ 
    [2] => India 
) 
1

我认为他想有元素3 =>英格兰到前面,所以他可以用foreach和阵列的其余部分必须留在同一个地方

比他想要这个结果

$array[1] = 'america'; 
$array[2] = 'India'; 
$array[3] = 'england'; 
$new_array[3] = $array[3]; 
$new_array[1] = $array[1]; 
$new_array[2] = $array[2]; 
print_r($new_array); 

有可能是一个函数,但我不能找到它,所以我提出一个

function placeLastToFirst($array){ 
    $newArray = array(); 
    $newArray[count($array)] = $array[count($array)]; 
    for($i = 1;$i < count($array);$i++){ 

     $newArray[$i] = $array[$i ]; 
    } 
    return $newArray; 
} 

你必须看,因为这个功能将仅在工作数组以1开头(正常数组以0开头)。在这种情况下,你可以使用这一个

function placeLastToFirst($array){ 
    $newArray = array(); 
    $newArray[count($array)-1] = $array[count($array)-1]; 
    for($i = 0;$i < count($array)-1;$i++){ 

     $newArray[$i] = $array[$i]; 
    } 
    return $newArray; 
} 
2

如果你想保留数组键使用array_slice(,,,TRUE)

$array = array_slice($array, -1, 1, TRUE) + array_slice($array, 0, -1, TRUE); 
0
$contractTypes = array('' => 'All') + $contractTypes;