Массивы в PHP (array in php)

Admin PHP

Примеры формирования массивов в PHP.

1. Вывод массива на экран

Для проверки данных в массиве можно использовать два варианта. Первый:

var_dump();

Второй вариант, который я предпочитаю больше, чтобы показать массив в удобочитаемом виде:

echo "<p re style='font-size: 11px'>"; print_r($data2); echo "</p re>";

Примечание: p re — исправить на pre

2. Разделение простого массива на ключ-значение

Разделение простого массива на два параметра: «ключ» и «значение», которые потом можно использовать:

foreach ($array as $k => $v) {
    $new_array['name'][] = $k;
    $new_array['value'][] = $v;
}

3. Удаление данных из массива

foreach($names as $k => $v) {
    if (!in_array($k, $games)) {
        unset($names[$k]);
}

Разбор кода:

1. Перебираем массив, который называется $names, разделив данные на ключ и значение. В данном примере, предположим, ключ это id, а значение не важно.

2. Ищем (перебираем) в массиве $games список всех ключей. Если в первом массиве ($names) такого ключа нет, то из этого же массива ($names) мы его удаляем.

Таким образом, мы уменьшили массив $names. Убрали из него порядковые номера id, которых не было в массиве $games.

Если unset вызывает fatal следует проверить, а не из объекта вы пытаетесь удалить массив? Если это объект, то удаление будет иное:

unset($names->$k);

4. Соединяем два массива

Имеем 2 массива.

Если в первом массиве есть значение, которое указано в ключе (ключ имеет название name) второго массива, то первому массиву присваиваем это значение.

foreach ($arr2 as $k => $v) {

    if (isset($arr1[$k])) $arr2[$k]['name'] = $arr1[$k];  

}

5. Соединяем массивы по уникальным ключам — переносим значение в ключ

Описание

Нужно сравнить ключи первого массива с ключами второго массива. При совпадении данных, перенести значение из первого массива во второй.

Код

foreach ($array1 as $k => $v) {
    if (isset($array2['keyName'][$k]) == $v) {
        unset($array1[$k]);
        $array[$array2['keyName'][$k]] = $v;
    }
}

Результат

6. Соединяем массивы по уникальным ключам — переносим значение в значение

Описание

Те же массивы, но нам нужно заменить значение ключей, а не сами ключи.

foreach ($array1 as $k => $v) {
    if (isset($array2['keyName'][$k]) == $v) {
        $array[[$k]] = $array2['keyName'][$k];
    }
}

Рузультат

7. Переделка большого многомерного массива

Переделаем большой многомерный массив $data в новый массив. В котором одно из значений переместим в начало массива, а другие значения сделаем его подмассивами.

function our_best_array() {
    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];

Мы создаем новый массив с названием $new_array. У него будет главный ключ $k[0], затем будет подмассив состоящий из данных $k[1], а него в свою очередь будет подмассив $k[6], который содержит все данные последнего цикла (самой последней вложенности старого массива) $number[0].

8. Как отсортировать массив

Сортировка массива по ключу. Сначала осуществляем перебор массива с помощью foreach, а затем используя функцию ksort сортируем по ключам. Стоит обратить внимание на флаг SORT_NATURAL, это позволяет сортировать массив по-человечески, когда после единицы всегда 2, а не 11.

// Sort array by key
foreach ($array as $k => $v) {
    ksort($v, SORT_NATURAL);
    $array[$k] = $v;
}

9. Оставляем только уникальные данные в массиве

Перебираем многомерный массив $data.

foreach ($data as $k) {
    $games[] = $k;

    foreach ($games[0] as $k) {
        $names[] = $k[0];
    }
}

А затем формируем новый массив, оставляя только уникальные значения.

$array = array_values(array_unique($names));

10. Функция возврата максимальных значений в многомерном массиве данных

Чтобы найти максимальное значение в одномерном массиве достаточно использовать функцию:

$maxArray = max($array);

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

$maxArray = maxKey($array);

Содержимое функции:

    function maxKey($array)
    {
        $max = max($array);
        foreach ($array as $k => $v)
        {
            if ($v == $max) return $k;
        }
        return $k;
    }

11. Функция reset

Позволяет исключить циклы foreach внутри массива, чтобы добраться до тех массивов, с которых уже можно начать делать перебор.

reset($array);

12. Многомерный массив превращаем в одномерный

Берем из многомерного массива ключ и значение и делаем одномерный:
https://ploshadka.net/array-key-combination/

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Массивы в PHP (array in php)"