2012-04-11 9 views
-1

いくつかの値を返すmysqlクエリがある場合、これらの値は 'parent_id'で分類され、約3〜5の値pr 'parent_id'があります。私のwhileループでは、それぞれのparent_idから最初の値をエコーし​​たいだけです。これについてどうすればいいですか?変数intの最初のインスタンスの場合

ような何か「これが初めてである場合、この変数は、この値を持っているがものを行う」

+0

はここにあなたのコードを含めます。 – Lion

+0

parent_idをベクターに保存しますか?答えが「はい」の場合は、parent_id_vector [0] ..を返すだけかもしれません.. –

+0

boolフラグを使用しますか?あなたの質問がちょっと曖昧なので、助けが難しいです。可能であれば、いくつかのコードを投稿してください。 – xbonez

答えて

0

はちょうどあなたのwhileループに条件を追加...

$old_id = ''; 
while($row = $db->fetch_object()){ 
    if($row->parent_id != $old_id){ 
     //new parent_id 
     $old_id = $row->parent_id; 
     //... do stuff ... 
    } 
} 
+0

おかげさまで私は探していました! 申し訳ありませんが明確でない場合、私は質問に簡単な解決策がなければならないことを知っていましたので、参考までに私のループは次のようになりました: '$ oldlimit = 0; 一方($行=は、mysql_fetch_array($結果)){ \t \t \t \t IF($行[ 'post_parent']!= $ oldlimit){ //コード $ oldlimit = $行[」を実行しますpost_parent ']; } } ' – Larsss

1

あなたは、配列の値を維持し、新しい値が配列であるかどうかを確認することができます。

$SeenValues=array(); 

foreach($AllValues as $Value){ //Or some other loop 
    if (!in_array($Value, $SeenValues)){ 
     //Do something 

     //Add new value to array 
     array_push($SeenValues, $Value); 
    } 
} 
+0

'in_array()'の代わりに 'array_search()'を使って、 'if(array_search($ Value、$ SeenValues)=== false)'のような強力な比較をするのはどうでしょうか?私はあなたにそのように頼むことができる? – Lion

+0

@ライオン:どのような利点がありますか? –

+0

@Lion:array_searchは、見つかった値に対応するキーを返します。特定のキーを探しておらず、連想配列を探していないので、私はそれを使用しませんでした。 –

関連する問題