PHP合并数组中的重复键
我从web服务获得响应(json),并将其转换/解码为php数组 已转换的数组php:PHP合并数组中的重复键,php,arrays,Php,Arrays,我从web服务获得响应(json),并将其转换/解码为php数组 已转换的数组php: $data = [ [ 'id' => '01', 'name' => 'ABC', 'label' => 'color', 'value' => '#000000' ],[ 'id' => '01', 'name' => 'ABC',
$data = [
[
'id' => '01',
'name' => 'ABC',
'label' => 'color',
'value' => '#000000'
],[
'id' => '01',
'name' => 'ABC',
'label' => 'active',
'value' => true
],[
'id' => '02',
'name' => 'DEF',
'label' => 'color',
'value' => '#ffffff'
],[
'id' => '02',
'name' => 'DEF',
'label' => 'active',
'value' => false
]
];
预期阵列输出:
$data = [
[
'id' => '01',
'name' => 'ABC',
'color' => '#000000',
'active' => true,
],[
'id' => '02',
'name' => 'DEF',
'color' => '#ffffff',
'value' => false
]
];
什么php函数适合这种情况?提前感谢在这种情况下,您必须在阵列中循环并删除重复项,然后尝试给定的方法
$data = json_decode($data); //decode the json into a php array
foreach ($data as $key=>$subArray){ //loop over the array
//check and see if value is either true/false
if (is_bool($subArray['value'])){
$processedArray[] = $subArray; //build output
}
}
print_r($processedArray); //output/dump array for debugging
$data=json\u decode($data,true);
$filtered=array();
对于($i=0;$i
您可以简单地使用foreach
$r = [];
foreach($data as $v){
if(isset($r[$v['id']])){
$r[$v['id']][$v['label']] = $v['value'];
}else{
$r[$v['id']] = [
'id' => $v['id'],
'name' => $v['name'],
$v['label'] => $v['value']
];
}
}
活生生的例子:通常涉及到一个
foreach
,您尝试过吗?您尝试过什么吗?