Как я могу настраивать многомерный массив? - PullRequest
0 голосов
/ 27 мая 2019

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

$a  = array('value' =>
    array(
        'lesson_id' => array('1','6'), 
        'knowledge_value' => array('2','7'), 
        'knowledge_description' => array('3','8'), 
        'skill_value' => array('4','9'), 
        'skill_description' => array('5','10')
    )
);

Я хочу изменить это так:

$a = array('value' =>
    array(
        array(
            'lesson_id' => '1', 
            'knowledge_value' => '2', 
            'knowledge_description' => '3',
            'skill_value' => '4',
            'skill_description' => '5'
        ),
        array(
            'lesson_id' => '6', 
            'knowledge_value' => '7', 
            'knowledge_description' => '8',
            'skill_value' => '9',
            'skill_description' => '10'
        ),
    )
);

Как я могу это сделать?

1 Ответ

0 голосов
/ 27 мая 2019

Демонстрационная ссылка

Вот фрагмент кода, с которым вы можете работать, для объяснения см. Встроенный документ

$temp = [];
$keys = array_keys($a['value']); // fetched all keys
for ($i = 0; $i < count($a['value']['lesson_id']); $i++) { // compared with first count of lession_id
    $temp['value'][] = array_combine($keys, array_column($a['value'], $i)); // combined key and values
}

array_keys - вернуть все ключи или подмножество ключей массива.
array_combine - создать массив, используя один массив для ключей и другой для его значений
array_column - вернуть значения из одного столбца во входном массиве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...