PHP,从不同的foreach获得不同的数组值

时间:2012-07-22 20:58:05

标签: php arrays algorithm multidimensional-array

我很遗憾,在下面的代码中:

while($row = mysqli_fetch_object($result)){
        $similar_games[$row->game_id]['id'][] = $row->id;
        $similar_games[$row->game_id]['name'][] = $row->name;
        $similar_games[$row->game_id][$type] = 0;
    }
        foreach($similar_games as $originalGameKey => $originalGame){
            //Can be a case where union gets unset, and not populated.  scares ksort();
            $union = array();
            $similar_values = array();

            $union = $similar_concepts; 

            foreach($originalGame['id'] as $similarGameKey => $similarGame){
                if(!isset($union[$similarGame])){
                    $union[] = $similarGame;
                }
            }
            foreach($originalGame['id'] as $similarGameKey => $similarGame){
                if(isset($union[$similarGame])){
                    $similar_values[] = $similarGame;
                }
            }
            $similar_games[$originalGameKey]["union"] = $similar_values;
       }

在第$similar_values[] = $similarGame;行我尝试获取$row->name而不是$row->id

但我不知道如何使基于['id']的foreach访问['name']值。

如果这太混乱了,我可以试着澄清一下,但我自己也遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

我刚改变了:

foreach($originalGame['id'] as $similarGameKey => $similarGame){
                if(isset($union[$similarGame])){
                    $similar_values[] = $similarGame;
                }
            }
            $similar_games[$originalGameKey]["union"] = $similar_values;

致:

for($i = 0; $i<count($originalGame['id']);$i++){
                if(isset($union[$originalGame['id'][$i]])){
                    $similar_values[] = $originalGame['name'][$i];
                }
            }
            $similar_games[$originalGameKey]["union"] = $similar_values;