2016-04-19 3 views
-1

に共通の値を持つ配列を組み合わせて、私はプロジェクトに取り組んでいると私は私の質問は、私はは、新しい配列

$arr1 = array(
     array 
     (
      'id' => '1', 
      'city' => 'A.bad', 
     ), 
     array 
     (
      'id' => '2', 
      'city' => 'Pune', 
     ), 
     array 
     (
      'id' => '1', 
      'city' => 'Mumbai', 
     ) 
     ); 

以下のようなものであるアレイを1つ持っていると私はこれを比較する必要があり、この上で立ち往生していますidと私は以下のような出力をしたい。

$result = array(
     array(
      'id'='1', 
      'city'='A.bad','Mumbai' 
    ), 
     array(
      'id'='2', 
      'city'='Pune' 
    ) 
); 

我々は最初のものと同じIDを持っている場合ので、それはそれを取るでしょうA.badであり、第3 1で、それはそれはa.badmumbaiとして、ID 1および都市として結合しますmumbaiとして、ID 1と街があります他のレコードも同じ方法でフィルタリングされます。

+0

どうしますか?これはちょうど – Ghost

+0

あなたの質問を精緻化しているいくつかの配列です、より正確に:期待される出力は何ですか? – RomanPerekhrest

答えて

5

ループ配列を通って、idに応じて、新しいarrayを生成する。あなたはこれを試すことができます -

$new = array(); 
foreach($arr1 as $array) { 
    $new[$array['id']]['id']= $array['id']; 
    // check if the city value set for that id 
    // if set the concatenate else set with the city name 
    $new[$array['id']]['city']= (isset($new[$array['id']]['city'])) ? ($new[$array['id']]['city'] . ',' . $array['city']) : $array['city']; 
} 

Fiddle

あなたは、データベースからそのデータを取得している場合は、内のグループにそれらをすることができますクエリも。

関連する問題