Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP过滤器数组函数_Php_Function_Multidimensional Array_Filter_Filtering - Fatal编程技术网

PHP过滤器数组函数

PHP过滤器数组函数,php,function,multidimensional-array,filter,filtering,Php,Function,Multidimensional Array,Filter,Filtering,我需要一个过滤器作为功能。我已经: <?php $array = array( array('name' => 'John Doe', 'email' => 'john@gmail.com'), array('name' => 'Marry Lies', 'email' => 'marry@gmail.com'), array('name' => 'Andrew Joe', 'email' => 'andrew@gmail.co

我需要一个过滤器作为功能。我已经:

<?php

$array = array(
    array('name' => 'John Doe', 'email' => 'john@gmail.com'),
    array('name' => 'Marry Lies', 'email' => 'marry@gmail.com'),
    array('name' => 'Andrew Joe', 'email' => 'andrew@gmail.com'),
);

$like = 'jo';
$kol = 'name';
$result = array_filter($array, function ($item) use ($kol,$like) {
    if (stripos($item[$kol], $like) !== false) {
        return true;
    }
    return false;
});
print_r($result);

如何使上述代码在函数中工作。请在这里写下全部代码。

您就快到了。问题在于,当使用
数组_过滤器
(如上的小字部分所述)时,会保留数组键。要重新索引结果,可以通过
数组_值运行它,这将重置键,使其从零开始

作为一个函数,它可以如下所示:

function filter($array, $like, $kol) {
    $filtered = array_filter($array, function ($item) use ($kol, $like) {
        return stripos($item[$kol], $like) !== false;
    });
    
    return array_values($filtered);
}

此处的完整演示:

以上代码返回第[0]行和第[2]行。如何使其按顺序返回行,以便返回[0]和[1]?
array\u values()
将为您重新排序数组。
function filter($array, $like, $kol) {
    $filtered = array_filter($array, function ($item) use ($kol, $like) {
        return stripos($item[$kol], $like) !== false;
    });
    
    return array_values($filtered);
}