Splatpacking против array_values() для повторной индексации массива с помощью числовых ключейPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Splatpacking против array_values() для повторной индексации массива с помощью числовых ключей

Сообщение Anonymous »

Начиная с PHP7.4, появился новый метод переиндексации массива с помощью числовых ключей.

Я назову его «массив» переупаковка» или, может быть, что-нибудь забавное, например «splatpacking». Простой процесс включает использование оператора splat () — он же «оператор расширения» — для распаковки массива и последующего заполнения нового массива элементами первого уровня посредством «симметричной деструктуризации массива».
  • RFC: оператор расширения в выражении массива
  • Оператор расширения стал доступен в PHP5.6
  • Симметричное деструктурирование массива стало доступно доступно в PHP7.1
  • Новости Laravel: оператор расширения для массивов появится в PHP 7.4
Код сравнения: (Демо)

Код: Выделить всё

$array = [2 => 4, 5 => 3, "3" => null, -10.9 => 'foo'];

var_export(array_values($array));
var_export([...$array]);
Оба выведут:

Код: Выделить всё

array (
0 => 4,
1 => 3,
2 => NULL,
3 => 'foo',
)
Опять же, метод splatpacking строго ограничен массивами с числовыми ключами, поскольку оператор splat ограничивает все остальное, а возможность записывать распакованные значения непосредственно в массив доступна только доступно в PHP7.4 и выше.

Поскольку эти два метода обеспечивают одинаковый результат в определенных ситуациях, когда мне следует использовать один вместо другого?

Обратите внимание: речь идет не о том, как переиндексировать ключи, а о сравнении array_values() с новым доступным методом.

Это отличается от:
  • Переиндексации ключей числового массива
  • Как переиндексировать массив в PHP?
  • Масив переиндексации PHP? [дубликат]
  • array_unique, а затем перенумерация ключей [дубликат]
и другие десятки старые страницы, на которых спрашивается, как переиндексировать массив.

Подробнее здесь: https://stackoverflow.com/questions/577 ... meric-keys
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»