Array (
[0] => Array ( [id] => 809 [img_url] => A1 )
[1] => Array ( [id] => 809 [img_url] => A2 )
[2] => Array ( [id] => 809 [img_url] => A3)
[3] => Array ( [id] => 809 [img_url] => A4 )
[4] => Array ( [id] => 809 [img_url] => A5 )
[5] => Array ( [id] => 1809 [img_url] => B1 )
[6] => Array ( [id] => 1809 [img_url] => B2 )
[7] => Array ( [id] => 2809 [img_url] => C1 )
[8] => Array ( [id] => 2809 [img_url] => C2 )
)
请问怎么把上面这个数组变成这个样子?代码怎么写?
Array (
[0] => Array ( [id] => 809 [img_url] => A1,A2,A3,A4,A5 )
[1] => Array ( [id] => 1809 [img_url] => B1,B2)
[2] => Array ( [id] => 2809 [img_url] => C1,C2)
)
[0] => Array ( [id] => 809 [img_url] => A1 )
[1] => Array ( [id] => 809 [img_url] => A2 )
[2] => Array ( [id] => 809 [img_url] => A3)
[3] => Array ( [id] => 809 [img_url] => A4 )
[4] => Array ( [id] => 809 [img_url] => A5 )
[5] => Array ( [id] => 1809 [img_url] => B1 )
[6] => Array ( [id] => 1809 [img_url] => B2 )
[7] => Array ( [id] => 2809 [img_url] => C1 )
[8] => Array ( [id] => 2809 [img_url] => C2 )
)
请问怎么把上面这个数组变成这个样子?代码怎么写?
Array (
[0] => Array ( [id] => 809 [img_url] => A1,A2,A3,A4,A5 )
[1] => Array ( [id] => 1809 [img_url] => B1,B2)
[2] => Array ( [id] => 2809 [img_url] => C1,C2)
)
$par = array(
array('id'=>809,'img_url'=>'A1'),
array('id'=>809,'img_url'=>'A2'),
array('id'=>809,'img_url'=>'A3'),
array('id'=>809,'img_url'=>'A4'),
array('id'=>809,'img_url'=>'A5'),
array('id'=>1809,'img_url'=>'B1'),
array('id'=>1809,'img_url'=>'B2'),
array('id'=>2809,'img_url'=>'C1'),
array('id'=>2809,'img_url'=>'C2'));
function process($par){
if(is_array($par)){
$ret = array();
$comma = ',';
foreach($par as $val){
if($val['id'] == $tmp['id']){
$tmp['img_url'] = $tmp['img_url'].$comma.$val['img_url'];
}else{
if($tmp != ''){
$ret[] = $tmp;
}
$tmp = $val;
}
}
return $ret;
}else{
return $par;
}
}
$ret = process($par);
var_dump($ret);
array('id'=>809,'img_url'=>'A1'),
array('id'=>809,'img_url'=>'A2'),
array('id'=>809,'img_url'=>'A3'),
array('id'=>809,'img_url'=>'A4'),
array('id'=>809,'img_url'=>'A5'),
array('id'=>1809,'img_url'=>'B1'),
array('id'=>1809,'img_url'=>'B2'),
array('id'=>2809,'img_url'=>'C1'),
array('id'=>2809,'img_url'=>'C2')
);
foreach($par as $v)
{
$newArray[$v['id']] = array('id'=>$v['id']
,'img_url'=>$newArray[$v['id']] ? $newArray[$v['id']]['img_url'].','.$v['img_url'] : $v['img_url']
);
}
echo "<pre/>";
print_r(array_values($newArray));