Рубрики
Uncategorized

PHP-соединение в ассоциативный массив

Для тех, у кого, возможно, больше опыта в более приятных (не @ me 😎 🙉 ) языках, таких как Javascript,… С пометкой php, веб-разработчик, учебник.

Для тех, у кого, возможно, больше опыта в более приятных (не @ me 😎 🙉 ) языках, таких как Javascript, объединение в ассоциативный массив в PHP может показаться немного сложным.

В javascript мы могли бы просто вызвать array.splice и указать наш индекс и смещение, и это сработало бы. Javascript не волнует, что это ассоциативный массив (объект) или индексированный массив, он просто работает.

PHP немного сложнее. Индексированные массивы и ассоциативные массивы принципиально отличаются друг от друга.

Это нормально, хотя есть довольно простой способ сделать это. И я сделал небольшую вспомогательную функцию, чтобы завершить это;

Как это работает

Я смоделировал эту вспомогательную функцию на основе встроенного метода array_splice , ключевым отличием которого является второй параметр, который теперь является строковым ключом, а не числовым индексом.

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

Если мы не найдем индекс в массиве, просто вернем исходный входной массив. (Эта часть – своего рода приключение на выбор. Возможно, вместо этого вы захотите вернуть значение false или ошибку.)

Имея в руках индекс, теперь мы можем эффективно разделить наш ассоциативный массив на 3 части;

  • Срез “до”, перед индексом нашего ключа
  • Заменяющий срез
  • Срез “после”, после индекса нашего ключа, плюс длина

Наконец, все, что остается, – это объединить три элемента вместе по порядку, используя array_merge .

И это все!

Обратите внимание, что во встроенном методе array_splice длина $ и $замена параметры являются необязательными. Это можно было бы воспроизвести, но давайте будем честны, это не очень ценно.

Оригинал: “https://dev.to/sebtoombs/php-splice-into-an-associative-array-51cl”