Вопрос по работе с массивами

117
19 марта 2021, 21:00

Я новичок в PHP, очень сложно разобраться в документации, поэтому решил задать сюда вопрос.

У меня есть такой массив:

Array
(
    [0] => Array
        (
            [PRODUCT_ID] => 610
            [OPTIONS] => Array
                (
                    [OPTION_1] => 0
                )
            [ADDS] => 
            [AMOUNT] => 1
            [SECTION_ID] => 62
            [HISTORY_PRICE] => 720
        )
    [1] => Array
        (
            [PRODUCT_ID] => 609
            [OPTIONS] => Array
                (
                    [OPTION_1] => 0
                )
            [ADDS] => 
            [AMOUNT] => 1
            [SECTION_ID] => 62
            [HISTORY_PRICE] => 620
        )
    [2] => Array
        (
            [PRODUCT_ID] => 611
            [OPTIONS] => Array
                (
                    [OPTION_1] => 0
                )
            [ADDS] => 
            [AMOUNT] => 1
            [SECTION_ID] => 62
            [HISTORY_PRICE] => 750
        )
    [3] => Array
        (
            [PRODUCT_ID] => 613
            [OPTIONS] => Array
                (
                    [OPTION_1] => 0
                )
            [ADDS] => 
            [AMOUNT] => 1
            [SECTION_ID] => 62
            [HISTORY_PRICE] => 670
        )
    [4] => Array
        (
            [PRODUCT_ID] => 612
            [OPTIONS] => Array
                (
                    [OPTION_1] => 0
                )
            [ADDS] => 
            [AMOUNT] => 1
            [SECTION_ID] => 62
            [HISTORY_PRICE] => 670
        )

Мне нужно записать PRODUCT_ID из всех этих массивов в другой массив, чтобы в другом массиве были просто PRODUCT_ID. Заранее, спасибо огромное!

Answer 1

Используйте array_column - Возвращает массив из значений одного столбца входного массива

Пример из документации:

$records = array(
    array(
        'id' => 2135,
        'first_name' => 'John',
        'last_name' => 'Doe',
    ),
    array(
        'id' => 3245,
        'first_name' => 'Sally',
        'last_name' => 'Smith',
    ),
    array(
        'id' => 5342,
        'first_name' => 'Jane',
        'last_name' => 'Jones',
    ),
    array(
        'id' => 5623,
        'first_name' => 'Peter',
        'last_name' => 'Doe',
    )
);
$first_names = array_column($records, 'first_name');
print_r($first_names);

Результат:

Array
(
    [0] => John
    [1] => Sally
    [2] => Jane
    [3] => Peter
)

В вашем случае это будет

$productIds = array_column($myarray, 'PRODUCT_ID');
Answer 2

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

<?
$arr = [
    0 => [
        'PRODUCT_ID' => 22,
        'ADDS' => 22,
        'fdfd' => 22,
        'sdfgdsgds' => 22,
    ],
    1 => [
        'PRODUCT_ID' => 33,
        'ADDS' => 33,
        'fdfd' => 333,
        'sdfgdsgds' => 33,
    ],
    2 => [
        'PRODUCT_ID' => 44,
        'ADDS' => 44,
        'fdfd' => 44,
        'sdfgdsgds' => 44,
    ]
];
$new_arr = [];
foreach ($arr as $item){
    $new_arr[] = $item['PRODUCT_ID'];
}
var_dump($new_arr);
?>
READ ALSO
Непонятная ошибка в class

Непонятная ошибка в class

Есть код под хамп работает а под Ubuntu нет, ремируешь QRcode::png класс всё норм, но естественно картинок не создаёт, в чём может быть отличияРазрешения...

90
Как сортировать сообщения в диалоги на PHP?

Как сортировать сообщения в диалоги на PHP?

Есть сообщения из БД, как сделать что-то типо диалоговЧтобы показывалось только последнее сообщение (проверка по логину)

92
Как составить SQL запрос вывода диалогов?

Как составить SQL запрос вывода диалогов?

Ранее задавал вопрос как сортировать данные полученные из базы средствами PHP, посоветовали что лучше составить запрос на SQL

119
Белый экран на странице phpinfo(). Битрикс

Белый экран на странице phpinfo(). Битрикс

В админке Битрикса при переходе Настройки-Инструменты-Диагностика-Настройки PHP (/bitrix/admin/phpinfophp) выдаёт пустую страницу

114