关于数组的练习题

关于数组的练习题

<?php
// 已知
$input = [
    ['value_id'=>1, 'value_name'=>'红', 'prop'=>['prop_id'=>1, 'prop_name'=>'颜色']],
    ['value_id'=>2, 'value_name'=>'黄', 'prop'=>['prop_id'=>1, 'prop_name'=>'颜色']],
    ['value_id'=>3, 'value_name'=>'大', 'prop'=>['prop_id'=>2, 'prop_name'=>'尺寸']],
];

$dd = [];
foreach ($input as $key => $value) {
    $var = $value['prop']['prop_id'];
    if (!isset($dd[$var])) {
        $dd[$var]=[
            'prop_id'=>$var,
            'prop_name'=>$value['prop']['prop_name']
        ];
        $dd[$var]['prop_value_list'][] = [
            'value_id'=>$value['value_id'],
            'value_name'=>$value['value_name']
        ];
    } else {
        $dd[$var]['prop_value_list'][] = [
                'value_id'=>$value['value_id'],
                'value_name'=>$value['value_name']
                ];
    }
}
echo json_encode($dd);

// *结果
$output = [
    ['prop_id'=>1, 'prop_name'=>'颜色', 'prop_value_list'=>[
            ['value_id'=>1, 'value_name'=>'红'],
            ['value_id'=>2, 'value_name'=>'黄']
        ]
    ],
    ['prop_id'=>2, 'prop_name'=>'尺寸', 'prop_value_list'=>[
            ['value_id'=>3, 'value_name'=>'大']
        ]
    ]
];