2012-02-26 55 views
1

我想知道是否有像MySQL SELECT WHERE这样的东西,但在数组中。MySQL选择哪里php数组等效

我有此数组:

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

); 

我基本上希望所有的记录,其中 '测试2'= '2'。所以我的结果应该是id的1,2。

可以这样做吗?

+0

可以遍历您的数组,并测试自己的价值观。搏一搏! – halfer 2012-02-26 22:49:14

+4

投票结束为“太本地化”的人?也许我们应该有选择“我没有努力试图理解问题,所以让我们关闭它”? – Mchl 2012-02-26 22:50:52

+0

哦,它的PHP问题不是一个MySQL的,很愚蠢的我。 – 2012-02-26 22:52:36

回答

4

您正在寻找array_filter

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

注意具有匿名函数的语法只能在PHP 5.3+中使用。对于早期版本,您需要事先创建回调函数。 – Mchl 2012-02-26 22:52:28

+0

感谢您提供的答案,只是想知道为什么使用3'='符号? – Codecube 2012-02-26 22:54:03

+1

@Marases'==='是一样的; '=='是等于;请参阅http://php.net/manual/en/language.operators.comparison.php – SimonMayer 2012-02-26 22:55:56

1

有一个sql4array类,允许你使用SQL从一个PHP数组中检索数据,虽然我从来没有使用过它,不能发表评论它有多好。开发者确实承认它很慢,并且不支持整个SQL语法。

还有PHPLinq或使用语言集成查询的替代方法,如plinqlinqforphp

就个人而言,我倾向于使用foreach()循环使用array_filter()