Примеры формирования массивов в PHP.
1. Вывод массива на экран
Для проверки данных в массиве можно использовать два варианта. Первый:
Второй вариант, который я предпочитаю больше, чтобы показать массив в удобочитаемом виде:
Примечание: p re — исправить на pre
2. Разделение простого массива на ключ-значение
Разделение простого массива на два параметра: «ключ» и «значение», которые потом можно использовать:
$new_array['name'][] = $k;
$new_array['value'][] = $v;
}
3. Удаление данных из массива
if (!in_array($k, $games)) {
unset($names[$k]);
}
Разбор кода:
1. Перебираем массив, который называется $names, разделив данные на ключ и значение. В данном примере, предположим, ключ это id, а значение не важно.
2. Ищем (перебираем) в массиве $games список всех ключей. Если в первом массиве ($names) такого ключа нет, то из этого же массива ($names) мы его удаляем.
Таким образом, мы уменьшили массив $names. Убрали из него порядковые номера id, которых не было в массиве $games.
Если unset вызывает fatal следует проверить, а не из объекта вы пытаетесь удалить массив? Если это объект, то удаление будет иное:
4. Соединяем два массива
Имеем 2 массива.
Если в первом массиве есть значение, которое указано в ключе (ключ имеет название name) второго массива, то первому массиву присваиваем это значение.
if (isset($arr1[$k])) $arr2[$k]['name'] = $arr1[$k];
}
5. Соединяем массивы по уникальным ключам — переносим значение в ключ
Описание
Нужно сравнить ключи первого массива с ключами второго массива. При совпадении данных, перенести значение из первого массива во второй.
Код
if (isset($array2['keyName'][$k]) == $v) {
unset($array1[$k]);
$array[$array2['keyName'][$k]] = $v;
}
}
Результат
6. Соединяем массивы по уникальным ключам — переносим значение в значение
Описание
Те же массивы, но нам нужно заменить значение ключей, а не сами ключи.
if (isset($array2['keyName'][$k]) == $v) {
$array[[$k]] = $array2['keyName'][$k];
}
}
Рузультат
7. Переделка большого многомерного массива
Переделаем большой многомерный массив $data в новый массив. В котором одно из значений переместим в начало массива, а другие значения сделаем его подмассивами.
foreach ($data as $key => &$value) {
foreach ($value as $k) {
foreach ($k as $inside) {
foreach ($inside as $number) {
$new_array[$k[0]]['name'] = $k[0];
$new_array[$k[0]][$k[1]]['title'] = $k[1];
$new_array[$k[0]][$k[1]][$k[6]][] = $number[0];
}
}
}
}
return $new_array;
}
Разбор участка кода:
Мы создаем новый массив с названием $new_array. У него будет главный ключ $k[0], затем будет подмассив состоящий из данных $k[1], а него в свою очередь будет подмассив $k[6], который содержит все данные последнего цикла (самой последней вложенности старого массива) $number[0].
8. Как отсортировать массив
Сортировка массива по ключу. Сначала осуществляем перебор массива с помощью foreach, а затем используя функцию ksort сортируем по ключам. Стоит обратить внимание на флаг SORT_NATURAL, это позволяет сортировать массив по-человечески, когда после единицы всегда 2, а не 11.
foreach ($array as $k => $v) {
ksort($v, SORT_NATURAL);
$array[$k] = $v;
}
9. Оставляем только уникальные данные в массиве
Перебираем многомерный массив $data.
$games[] = $k;
foreach ($games[0] as $k) {
$names[] = $k[0];
}
}
А затем формируем новый массив, оставляя только уникальные значения.
10. Функция возврата максимальных значений в многомерном массиве данных
Чтобы найти максимальное значение в одномерном массиве достаточно использовать функцию:
Но это не получится сделать, если массив многомерный. Для сортировки многомерного массива по одному из ключей одного из массивов можно воспользоваться другой функцией. Для начала дойти до нужной итерации и внутри неё уже использовать следующую функцию:
Содержимое функции:
{
$max = max($array);
foreach ($array as $k => $v)
{
if ($v == $max) return $k;
}
return $k;
}
11. Функция reset
Позволяет исключить циклы foreach внутри массива, чтобы добраться до тех массивов, с которых уже можно начать делать перебор.
12. Многомерный массив превращаем в одномерный
Берем из многомерного массива ключ и значение и делаем одномерный:
https://ploshadka.net/array-key-combination/