Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Arrays_Filter_Filtering - Fatal编程技术网

PHP按键变量筛选数组

PHP按键变量筛选数组,php,arrays,filter,filtering,Php,Arrays,Filter,Filtering,我希望按key进行过滤,其中key是一个变量$kol $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

我希望按key进行过滤,其中key是一个变量$kol

$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 ($like) {
    if (stripos($item['name'], $like) !== false) {
        return true;
    }
    return false;
});
print_r($result);
我试图用$kol替换“name”,但这不起作用。我希望能够搜索'name'或'email'中的'jo'并更改$kol的值。怎么做


我认为您可以在数组筛选器上传递
$kol
$like
,使用下面类似的
来根据
$kol
和类似
$like
的任何值筛选任何列

<?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);

您是否将
使用($like)
替换为
使用($kol)
?我将(stripos($item['name',$like)替换为(stripos($item[$kol],$like)@frankrosendahlarsen
函数($item)使用($like,$kol)
stripos($item[$kol],$like)
inside?为了让闭包访问
$kol
,您需要将其包括到变量列表中,方法与
$like
相同:
函数($item)使用($like,$kol){
请您更改整个$result=行并将其发布在此处。我无法真正理解您的意思。这将返回post 0和2。如何使其返回post 0和1,以便按顺序返回?使用
数组_值($result);