2010-05-05 108 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;