2012-02-10 8 views
-1

私はPHPを使い始めたばかりですが、何かをすばやく作成する必要があります。PHPで配列を反復処理する

$fql = "SELECT uid, name, pic_square, sex 
     FROM user 
     WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())"; 

     $response = $facebook->api(array(
      'method' => 'fql.query', 
      'query' =>$fql, 
     )); 

    $allUsers = $mapper->getAll(); 

だから私は、例えば、$response[0]["name"]は、最初のユーザーの名前を返し、$response[0]["id"]は、最初のユーザーのIDを返し、$応答を持ってきました。

次に、すべてのユーザーIDを取得した$ allUsers配列があります。 $allUsers[0]->idは、最初のユーザーのIDを返します。

これで、$ response配列をフィルタリングし、idが$ allUsers配列に存在するユーザーのみに表示したいと思います。これは新しい配列である可能性があります。たとえば、$ filteredResponseです。

が助けをありがとうございました、それは本当に構文に

を知らない私だけの問題で私はこのようなSTHを書いた:

$filteredResult = array(); 

    foreach ($response as &$userfb) { 
     foreach($allUsers as &$userdb){ 
      if($userfb["id"] == $userdb->id){ 
       array_push($filteredResult, $userfb); 
       break 1; 
      } 
     } 
    } 

はこの正しいですか?

+1

あなたの宿題をしてください:http://stackoverflow.com/questions/how-to-ask PHPホームページには優れた文書があります。 array_filter関数には、配列をフィルタリングするために必要なものがあります:http://www.php.net/manual/en/function.array-filter.php – Carsten

答えて

2

あなたはこのパターンに多くのことを利用します。

// First for each loop takes each element of the 1st array and makes it a variable. 
foreach ($response as resposeData) 
{ 
    // the second foreach loop goes through the 2nd level array. 
    // since it is a hash array we ask to give us the hash key and it's value. 
    // This allows for us to use if conditionals to decide what to do with the data. 
    foreach ($responseData as $key => $val) 
    { 
    } 
} 
+0

私は理解していませんが、本当にフィルタリングと戻り配列を行うコードを書いてください。 – gruber

+0

stackoverflowは無料のコードを入手する場所ではありません。配列を繰り返し処理するスケルトンを与えました。私はいくつかのコメントを追加しますが、あなたはそれを通してあなたの方法を働かせるためにPHPのドキュメントを読む必要があります。 – thenetimp

関連する問題