PHP:SQL查询数组的最佳方法是什么?(如果你可以的话)

Tal*_*tia 4 php mysql arrays

考虑一下:

一个mySQL数据库,其中包含表和行以及数据.

一个具有相同数据的数组.

现在通常情况下,对于mySQL,我会有这样的查询 SELECT * FROM 'table' WHERE name LIKE '%abc%'

但我想在数组上执行相同的查询,而不必插入它.我想到的唯一方法是使用array_search,但语法不同,方法也很复杂.

这里有捷径吗?

Nul*_*ion 5

您不能将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)