Переместить элемент массива в начало массива?

Если у меня есть массив, подобный приведенному ниже, как мне переместить ключ [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-м и т. д. он меняется каждый раз.

Вы искали в Интернете решение? stackoverflow.com/a/11703775/630203

Djave 11.01.2019 17:03

Я видел array_unshift, но думал, что он просто добавил значение, а не переместил его?

Mike Abineri 11.01.2019 17:07

«Функция array_unshift () вставляет новые элементы в массив. Новые значения массива будут вставлены в начало массива» - это почти то, что я хочу, однако я надеялся, что существует более простое решение, кроме использования array_unshift и последующего удаления повторяющееся значение.

Mike Abineri 11.01.2019 17:10

Спасибо, это хороший момент, я не очень понял, прошу прощения за это, я отредактировал сообщение, и это не всегда последний элемент, элемент, который я хочу переместить в начало каждый раз, меняется по положению, однако он всегда должен быть добавлено в начало.

Mike Abineri 11.01.2019 17:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Почему бы вам не использовать 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
)

Фантастика! Спасибо за вашу помощь.

Mike Abineri 11.01.2019 17:46

Другие вопросы по теме