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

Выше мой ассоциативный массив. Как я могу привести 3 => англия к фронту массива?Добавить элемент в ассоциативный массив PHP

+0

Как разнообразие ответов показывают, что есть более чем один способ сделать это конкретный случай. Это помогло бы узнать, чего вы на самом деле пытаетесь достичь - хотите ли вы с самым высоким числовым индексом спереди или просто переместите последний элемент на передний план или хотите, чтобы «3 => англия» на фронт где бы он ни находился в массиве? Или что-то еще? –

+2

Это не ассоциативный массив, это индексированный массив, хотя в парактике PHP imlpements индексирует массивы как ассоциативные. – symcbean

ответ

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); 
Смежные вопросы