PHP按键变量筛选数组
我希望按key进行过滤,其中key是一个变量$kolPHP按键变量筛选数组,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
$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);