-1

私は2つの配列を持っています

$data1 = array(
    ['Ngay'=>'15-10-2013','esoluz'=>'5'],
    ['Ngay'=>'16-10-2013','esoluz'=>'3'],
    ['Ngay'=>'17-10-2013','esoluz'=>'7']
);

$data2 = array(
    ['Ngay'=>'15-10-2013','google'=>'10'],
    ['Ngay'=>'16-10-2013','google'=>'8']
);

私はそれがなりたい:

$result = array(
    ['Ngay'=>'15-10-2013','esoluz'=>'5','google'=>'10'],
    ['Ngay'=>'16-10-2013','esoluz'=>'3','google'=>'8'],
    ['Ngay'=>'17-10-2013','esoluz'=>'7'],
)

$result のような配列を json_encode してグラフの作成に使用する必要があるため、混乱します。だから、役に立つアイデアをありがとう!

4

3 に答える 3

1

array_merge()メソッドを使用した後、array_unique()を使用して一意の値を作成し、JSON の結果を出力します。あなたのコードは次のようになります -

$result_arr = array_merge($data2, $data1);
$result_arr = array_unique($result_arr);

$result_arr = array();
foreach($data1 as $value){
    $result_arr[$value['Ngay']] = $value;
}
foreach($data2 as $value){
    if(array_key_exists($value['Ngay'],$result_arr)){
        $result_arr[$value['Ngay']] = array_merge($result_arr[$value['Ngay']],$value);
    }else{
         $result_arr[$value['Ngay']] = $value;
    }
}
$result = json_encode($result_arr);
于 2013-10-17T09:19:08.483 に答える
0
$outArray = array();
foreach($data1 as $item){
    $outArray[$item['Ngay']] = $item;
}
foreach($data2 as $item){
    if(array_key_exists($item['Ngay'],$outArray)){
        $outArray[$item['Ngay']] = array_merge($outArray[$item['Ngay']],$item);
    }else{
         $outArray[$item['Ngay']] = $item;
    }
}

PHP フィドル: http://phpfiddle.org/main/code/v8f-miu

于 2013-10-17T09:18:03.217 に答える