考虑一下:
一个 mySQL 数据库,其中包含表、行和数据。
具有相同数据的一个数组。
现在通常,我会对 mySQL SELECT * FROM 'table' WHERE name LIKE '%abc%'
但我想在数组上执行相同的查询,而不必插入它。想到的唯一方法是使用 array_search ,但语法不同,方法复杂。
这里有捷径吗?
最佳答案
您不能将 SQL 与数组一起使用,但是您可以执行示例的一种方法是使用 array_filter()
:
function like_abc($v) {
return strstr($v['name'], 'abc') !== false;
}
$filtered = array_filter($yourArray, 'like_abc');
或者如果您使用的是 PHP >= 5.3.0
$filtered = array_filter($yourArray,
function($v) { return strstr($v['name'], 'abc') !== false;});
在 ideone 上查看实际效果
编辑:
你也可以试试PHPLinq :
// UNTESTED CODE!
$yourArray = array (
array('name' => 'abcd', 'age' => 20),
array('name' => 'dacb', 'age' => 45),
array('name' => 'aadd', 'age' => 32),
array('name' => 'babc', 'age' => 11),
array('name' => 'afgb', 'age' => 17),
);
$result = from('$people')->in($yourArray)
->where('$people["name"] => strstr($people["name"], "abc") !== false')
->select('$people');
关于PHP:SQL 查询数组的最佳方法是什么? (如果你可以的话),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3539106/