想想这个:
一个包含表、行和数据的mySQL数据库。
具有相同数据的一个数组。
现在,通常情况下,我会对mySQLSELECT * FROM 'table' WHERE name LIKE '%abc%'
进行如下查询
但是我想在数组上执行相同的查询,而不必插入它。唯一想到的方法是使用array_search,但是语法不同,方法复杂。
这里有近路吗?
想想这个:
一个包含表、行和数据的mySQL数据库。
具有相同数据的一个数组。
现在,通常情况下,我会对mySQLSELECT * FROM 'table' WHERE name LIKE '%abc%'
进行如下查询
但是我想在数组上执行相同的查询,而不必插入它。唯一想到的方法是使用array_search,但是语法不同,方法复杂。
这里有近路吗?
4条答案
按热度按时间9q78igpj1#
你不能在数组中使用SQL,但是你可以使用
array_filter()
来完成你的例子:或者如果你使用的是PHP〉= 5.3.0
在ideone上查看实际应用
您也可以尝试PHPLinq:
cnwbcb6i2#
CakePHP有一个Set::extract方法,uses XPath query strings用来查找信息。它非常好,我认为如果没有CakePHP项目的其余部分,使用它应该不会太难。
z3yyvxxp3#
有一个sql4array类,它允许你使用SQL从PHP数组中检索数据,尽管我从来没有使用过它,也不能评论它有多好。开发人员承认它很慢,并且不支持SQL语法的全部。
如前所述,还有PHPLinq
我个人倾向于使用array_filter()
68bkxrlz4#
不,没有快捷方式。你不能用SQL查询数组。如果你的数组包含与数据库表相同的数据,那么它也将是多维的,这意味着array_search没有用。你必须手动循环数组并自己执行类似的操作,例如preg_match。