@kont_kont

Как разобрать php массив на пары — ключ -> элемент массива, значение -> элемент массива/подмассива?

Есть вот такой массив:
[ID] => 7204
[IBLOCK_SECTION_ID] => 142
[PROPERTY_VIRTUAL_SECTIONS_VALUE] => Array
        (
            [0] => 296
            [1] => 433
            [2] => 434
        )

Элементов [PROPERTY_VIRTUAL_SECTIONS_VALUE] может быть множество. Необходимо получить массив:
[7204] => Array
        (
            [0] => 142
            [1] => 296
            [2] => 433
            [3] => 434
        )

Или еще проще, просто
[0] => 142
[1] => 296
[2] => 433
[3] => 434
  • Вопрос задан
  • 534 просмотра
Пригласить эксперта
Ответы на вопрос 1
TrogWarZ
@TrogWarZ
web developer
Серьёзно? Вопрос о том как работать с массивами в PHP? Сами-то хоть пробовали решить?

<?php

// Test data

$in = [
    'ID'                              => 7204,
    'IBLOCK_SECTION_ID'               => 142,
    'PROPERTY_VIRTUAL_SECTIONS_VALUE' => [
        296,
        433,
        434,
    ],
];

$test = [
    7204 => [
        142,
        296,
        433,
        434,
    ],
];

// Working function
// 
function flattenConcreteArray (array $arr = []) : array {
    $id     = $arr['ID'];
    $result = [$arr['IBLOCK_SECTION_ID']];
    $result = array_merge($result, $arr['PROPERTY_VIRTUAL_SECTIONS_VALUE']);

    return [$id => $result];
};

// Testing

$out = flattenConcreteArray($in);

assert($out === $test);
echo 'It Works!' . PHP_EOL;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы