2016-11-17 7 views
0

私はまだPHPには新しく、人とその乗り物で構成されるPHP配列を作成しています。PHP配列を繰り返し、重複した値を確認してください

例:

Array 
(
    "owner" => "Person A", 
    "car" => "BMW" 
), 
Array 
(
    "owner" => "Person B", 
    "car" => "Mercedes" 
), 
Array 
(
    "owner" => "Person B", 
    "car" => "BMW" 
), 
Array 
(
    "owner" => "Person A", 
    "car" => "BMW" 
), 
Array 
(
    "owner" => "Person A", 
    "car" => "DODGE" 
) 

質問:

はどのような人Aの配列とフラグ重複BMW車を反復処理する適切な方法でしょうか?

ありがとうございました!

+0

: http://php.net/manual/en/function.count.phpまたはhttp://php.net/manual/en/function.array-count-values.php –

答えて

1

あなたの質問を読んだ後(かなり曖昧ですが)、私はあなたが何をしているかを知っていると思います。

私はすべてのデータを一時オブジェクトにロードする少しのPHPコードを書いています。スクリプトは、所有者が既に仮の配列にこれを追加する前に車を所有しているかどうかを確認します。重複するエントリで何をするかを選択できます。

注::このスクリプトを動作させるために、初期配列を少し変更しました。ここで

`

$data = (object) array 
    (
    array (
     "owner" => "Person A", 
     "car" => "BMW" 
    ), 
    array (
     "owner" => "Person B", 
     "car" => "Mercedes" 
    ), 
    array (
     "owner" => "Person B", 
     "car" => "BMW" 
    ), 
    array (
     "owner" => "Person A", 
     "car" => "BMW" 
    ), 
    array (
     "owner" => "Person A", 
     "car" => "DODGE" 
    ) 

); 

$temp = (object) array(); 
// loop over the object to list every person 
foreach($data as $row){ 

    // check if person already exists in the temp array, if not add it 
    if(!property_exists($temp, $row['owner'])){ 
     $temp->$row['owner'] = array(); 
    }; 

    // load the cars into the right persons array 
    if(in_array($row['car'], $temp->$row['owner'])){ 
     // Duplicate car.. do something. 
    } else { 
     array_push($temp->$row['owner'], $row['car']); 
    } 

} 

echo "<pre>"; 
print_r($temp); 
echo "</pre>"; 

`

ライブデモです:あなたはこれで遊んで、ここに...あなたが試したものを私たちに教えていないので、 http://phpfiddle.org/main/code/di0v-ugyr

関連する問題