如何自定义多维数组?

时间:2019-05-27 09:54:15

标签: php arrays multidimensional-array

我有这样的数组:

$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 :(得分:0)

Demo Link

这是您可以使用的代码段,请参见内联文档以获取说明

$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 —从输入数组的单个列中返回值