2012-02-26 20 views
1

MySQL SELECT WHEREのようなものがあるのか​​どうかを知りたがっています。MySQL SELECT WHERE php array equivalent

私はこの配列を持っている:

$array = array(1 => array('test' => '1', 'test2' => '2' ), 
       2 => array('test' => '4','test2' => '2' 
       ) 

); 

私は基本的に 'TEST2' = '2' のすべてのレコードを望んでいます。だから私の結果はIDの1,2でなければならない。

これはできますか?

+0

することができますループを使用するように傾斜して、その値を自分でテストしているはずです。試してごらん! – halfer

+4

「ローカライズすぎる」と投票する人はいますか?多分私たちは「私は質問を理解しようと努力しなかったので、それを閉じましょう」という選択肢を持っていなければなりません。 – Mchl

+0

ああ、そのPHPの質問mysqlのではなく、よく愚かな私。 –

答えて

4

あなたはarray_filterを探しています:

array_filter($array, function ($v) { return $v["test2"] === "2"; }); 
+2

匿名関数を持つ構文はPHP 5.3以降でのみ動作することに注意してください。以前のバージョンでは、事前にコールバック関数を作成する必要がありました。 – Mchl

+0

すぐにお返事ありがとうございます。どうして3 '='記号を使ったのですか? – Codecube

+1

@Marases '==='は同一です。 '=='は等しいです。 http://php.net/manual/en/language.operators.comparison.phpを参照してください。 – SimonMayer

1

はあなたがPHPの配列からデータを取得するためにSQLを使用することができますsql4arrayクラスがあり、私はそれを使ったことがないとのコメントすることはできませんが、それはどれくらい良いですか。開発者はそれが遅いと認識し、SQL構文全体をサポートしません。

PHPLinqまたはplinqおよびlinqforphpなどの言語統合クエリを使用する代替品もあります。

は個人的に、私は、foreachの()ループを使用して、配列をarray_filter()