Question

Help:

Array format like this:

    $arr=array(
        array('element1'=>'a','element2'=>1),
        array('element1'=>'b','element2'=>2),
        array('element1'=>'a','element2'=>2),
        array('element1'=>'b','element2'=>3),
        );

Synthesis is needed,how to change it like:

$arr=array(
    array('element1'=>'a','element2'=>array(1,2)),
    array('element1'=>'b','element2'=>array(2,3)),
    );
Était-ce utile?

La solution

$new = array();
foreach ($arr as $key => $value) {
    $new[$value['element1']][] = $value['element2'];
}
$new2 = array();
foreach($new as $k=>$v){
    $new2[] = array('element1'=>$k,'element2'=>$v);
}
print_r($new2);

Result

array(
    array('element1' => 'a', 'element2' => array(0 => 1, 1 => 2)),
    array('element1' => 'b', 'element2' => array(0 => 2, 1 => 3)),
   )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top