1=>america,2=>India,3=>england
Выше мой ассоциативный массив. Как я могу привести 3 => англия к фронту массива?Добавить элемент в ассоциативный массив PHP
1=>america,2=>India,3=>england
Выше мой ассоциативный массив. Как я могу привести 3 => англия к фронту массива?Добавить элемент в ассоциативный массив PHP
$temp = myArray[3];
$myArray[3] = $myArray[2];
$myArray[2] = $myArray[1];
$myArray[1] = $temp;
Для этого вы можете использовать функцию array_unshift
.
$array = array('americ', 'India');
array_unshift($array, 'englans');
print_r($array);
Выход:
Array
(
[0] => englans
[1] => americ
[2] => India
)
Использование array_pop и array_unshift.
$lastItem = array_pop($array);
array_unshift($array, $lastItem);
Вы можете сделать это с array_reverse
, документы вы можете найти на http://php.net/manual/en/function.array-reverse.php
krsort($myArray, SORT_NUMERIC)
Вы можете использовать array_pop
и array_unshift
для этого:
$last = array_pop($array);
array_unshift($array, $last);
Я думаю, что он хочет иметь элемент 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;
}
Если вы хотите сохранить массив ключей использовать array_slice(,,,TRUE)
.
$array = array_slice($array, -1, 1, TRUE) + array_slice($array, 0, -1, TRUE);
$contractTypes = array('' => 'All') + $contractTypes;
Как разнообразие ответов показывают, что есть более чем один способ сделать это конкретный случай. Это помогло бы узнать, чего вы на самом деле пытаетесь достичь - хотите ли вы с самым высоким числовым индексом спереди или просто переместите последний элемент на передний план или хотите, чтобы «3 => англия» на фронт где бы он ни находился в массиве? Или что-то еще? –
Это не ассоциативный массив, это индексированный массив, хотя в парактике PHP imlpements индексирует массивы как ассоциативные. – symcbean