Если у меня есть массив, подобный приведенному ниже, как мне переместить ключ [2] и связанное с ним значение в начало массива? (сделав его ключом [0] и увеличив другие ключи на 1)
Текущий:
[0] => Array
(
[name] => Vanilla Coke cans 355ml x 24
)
[1] => Array
(
[name] => Big Red Soda x 24
)
[2] => Array
(
[name] => Reeses White PB Cups - 24 CT
)
Желаемый результат:
[0] => Array
(
[name] => Reeses White PB Cups - 24 CT
)
[1] => Array
(
[name] => Vanilla Coke cans 355ml x 24
)
[2] => Array
(
[name] => Big Red Soda x 24
)
РЕДАКТИРОВАТЬ
Чтобы уточнить, я всегда хочу переместить элемент в начало массива, но он не обязательно будет последним элементом, иногда он может быть 3-м 4-м и т. д. он меняется каждый раз.
Я видел array_unshift, но думал, что он просто добавил значение, а не переместил его?
«Функция array_unshift () вставляет новые элементы в массив. Новые значения массива будут вставлены в начало массива» - это почти то, что я хочу, однако я надеялся, что существует более простое решение, кроме использования array_unshift и последующего удаления повторяющееся значение.
Спасибо, это хороший момент, я не очень понял, прошу прощения за это, я отредактировал сообщение, и это не всегда последний элемент, элемент, который я хочу переместить в начало каждый раз, меняется по положению, однако он всегда должен быть добавлено в начало.






Почему бы вам не использовать array_unshift и array_pop вместе?
array_unshift($someArray, array_pop($someArray));
array_pop удаляет последний элемент, а array_shift добавляет запись в массив.
array_splice удаляет (и при необходимости заменяет / вставляет) значения из массива, возвращая массив с удаленными элементами. В сочетании с простой функцией array_unshift эту работу можно было выполнить.
$arr = [1,2,3,4,5];
function array_move_item_as_first(array $array, int $idx) : array
{
array_unshift( $array, array_splice($array, $idx, 1)[0] );
return $array;
}
print_r(array_move_item_as_first($arr, 2));
вывод:
Array
(
[0] => 3
[1] => 1
[2] => 2
[3] => 4
[4] => 5
)
Фантастика! Спасибо за вашу помощь.
Вы искали в Интернете решение? stackoverflow.com/a/11703775/630203