考虑一下:
一个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');
Run Code Online (Sandbox Code Playgroud)
或者如果您使用PHP> = 5.3.0
$filtered = array_filter($yourArray,
function($v) { return strstr($v['name'], 'abc') !== false;});
Run Code Online (Sandbox Code Playgroud)
在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');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4635 次 |
| 最近记录: |