2

ゲームであるプレイヤーの成果を別のプレイヤーと比較するスクリプトを書いています。各配列では、ID とタイムスタンプがいくつかのエントリで一致します。2 つの別々の配列の開始点の 1 つのサンプルを含めました。

Array
(
    [0] => Array
        (
            [id] => 8213
            [timestamp] => 1384420404000
            [url] => http://www.wowhead.com/achievement=8213&who=Azramon&when=1384420404000
            [name] => Friends In Places Higher Yet
        )

    [1] => Array
        (
            [id] => 6460
            [timestamp] => 1384156380000
            [url] => http://www.wowhead.com/achievement=6460&who=Azramon&when=1384156380000
            [name] => Hydrophobia
        )

ID とタイムスタンプが一致するすべての配列項目を検索したいと考えています。array_intersect を調べましたが、エントリが同一の場合にのみアイテムが見つかるため、これは私が探しているものではないと思います。どんな助けでも大歓迎です。

4

3 に答える 3

1

関数を使用することがありますarray_intersect_assoc

于 2013-11-15T08:54:04.633 に答える
0

次のようなことを試してください:

<?php
   $key_match = Array();
   //Loop first array
   foreach($array as $key => $element){
      //Compare to second array 
      if($element == $array2[$key]){
          //Store matching keys
          $key_match[] = $key;
      }
   }
?>

$key_match は、一致するすべてのキーを含む配列になります。

(私は仕事をしていて、コードをテストする時間がありませんでした)

それが役に立てば幸い

編集:以下の完全に機能する例:

<?php
$a1["t"] = "123";
$a1["b"] = "124";
$a1["3"] = "125";
$a2["t"] = "123";
$a2["b"] = "124";
$a2["3"] = "115";

$key_match = Array();

    //Loop first array
    foreach($a1 as $key => $element){
        //Compare to second array 
        if($element == $a2[$key]){
           //Store matching keys
           $key_match[] = $key;
   }
}

var_dump($key_match);
?>
于 2013-11-15T08:32:54.720 に答える