Здесь приведены методы для работы с массивами любой размерности.
Многомерный аналог php-функции array_diff_key().
Пример:$arr = Arr::diffByKey($arr1, $arr2);
Обратите внимание, на то, что не имеют никакого значения сами значения элементов.
Многомерный аналог php-функции array_intersect_key().
Пример:
$arr = Arr::intersectByKey($arr1, $arr2);
Пример:
Arr::orderByKey($arr);
Рекурсивное слияние любого числа массивов по ключам.
Если ключи совпадают, более поздний массив перебивает значение элемента более раннего массива. Если по ошибке в параметр метода попадает немассив, то этот параметр просто игнорируется.
Пример:
$arr = Arr::mergeByKey($arr1, $arr2);
В исходный массив $arr1 вставляется массив $arr2 выше элемента с ключом $key1.
Пример:
$arr = Arr::wedge(['a'=>'aa','b'=>'bb'], ['d'=>'dd'], 'b');
Результирующий массив $arr: ['a'=>'aa','d'=>'dd','b'=>'bb']
Если в исходном массиве ключ неизвестен, его можно найти через значение элемента массива:
$key1 = array_search('bb', $arr1);
Возвратит 'b'
Удаляет из массива все элементы со значениями, перечисленными в массиве $values. Удаляются также все пустые элементы-массивы, то есть, элементы со значением: [].
Примеры:
# Удалить все элементы с пустыми значениями.
То же самое, что и Arr::remove($arr, [false, '', 0, '0', null])
Arr::remove($arr);
# Удалить все элементы со значением false.
Arr::remove($arr, false);
# Удалить все элементы со значением 0.
Arr::remove($arr, 0);
# Удалить все элементы со значениями 'green' и 'red'.
Arr::remove($arr, ['green', 'red']);
Для замены значений массива используйте функцию array_replace_recursive.
Проходит по многомерному массиву и обрабатывает его значения, не затрагивая ключей.
Пример:
Изменить массив $arr, оставив в каждом элементе символы со второго по четвертый.
Arr::walk($arr, 'substr', [1,3]);
Превращает строку или массив строк в ассоциативный массив со значениями true. Другие ассоциативные элементы исходного массива не затрагиваются.
$options='exit' преобразуется в ['exit'=>true]
$options=['exit', 'mode'=>'edit'] преобразуется в ['exit'=>true, 'mode'=>'edit']
Этот метод обычно используется внутри функций и методов для приведения параметра-массива к единому формату. То есть, строковые элементы параметра-массива рассматриваются как булевы опции функции.
Сравнените полную и короткую форму записи опций:
$text2 = Text::stripTags($text, ['strip-quotes'=>true]);
$text2 = Text::stripTags($text, 'strip-quotes');
Добавляет в массив элемент, заданный по цепочке ключей (в виде неассоциативного массива).
Пример:
$arr = []; // начальный массив
print_r(Arr::addByKeys($arr, ['a', 1], 'zz'));
//возвратит массив: ['a' => [1 => 'zz']]
Возращает значение элемента массива. Этот элемент задается по цепочке ключей (в виде неассоциативного массива). Цепочка ключей может иметь произвольную глубину.
Пример:
$arr['a']['b'][1][2] = 'zz'; // тестовый массив
print_r(Arr::getByKeys($arr['a'], ['b', 1]));
//возвратит массив: [[2]=>zz]
Удаляет из массива элемент, заданный цепочкой ключей (в виде неассоциативного массива).
Для пустого массива возвращает 0.
Если после пустого элемента (null, '') идет непустой элемент, то возвращается false.
Используется для обработки результата действия функции func_get_args().