今天在写业务逻辑的时候碰到一个多维数组需要降维的数组出来 利用foreach 遍历 和array_merge 即可
代码:
$dict_arr = array();
foreach ($dict as $row)
{
$dict_arr = array_merge($row['children'],$dict_arr);
}
$dict_arr=$this->value_to_key($dict_arr,'filed_name','name');
value_to_key(现在可以直接用php自带的函数array_column()):把数组里面的一个键的值作为新数组的键 把数组里面的另外一个键的值做作为新数组的值:
value_to_key(以前发表过一篇自己封装的PHP函数里面有 https://blog.csdn.net/xhzss123/article/details/80655799)
方法代码:
function value_to_key($data, $key_name, $key_value = '')
{
$result = [];
foreach ($data as $data_item) {
if (empty($key_value)) {
$result[$data_item[$key_name]] = $data_item;
} else {
$result[$data_item[$key_name]] = $data_item[$key_value];
}
}
return $result;
}
最后通过数组匹配key拿值来实现
foreach ($res_value as$ks=> $res2_value)
{
foreach ($res2_value as $value_key){
$dict_key=isset($dict_arr[$value_key])$dict_arr[$value_key]:$value_key;
$abnormal_yewu[$ks][][$dict_key]=empty($res['day_data'][$tag[$value_key])?0:$res['day_data'][$tag][$value_key];
}
}