我试图在数组中搜索,但根本没有得到任何结果。
假设我有一个包含一些值的数组。
所以当我想搜索它们时,它总是返回null!
不知道原因!
假设这是我的数组 -
$data = Array
(
[0] => Array
(
[id] => 122
[name] => Fast and furious 5
[category] => Game
)
[1] => Array
(
[id] => 232
[name] => Battlefield and more
[category] => Game
)
[2] => Array
(
[id] => 324
[name] => Titanic the legend
[category] => movie
)
[3] => Array
....
所以我试过这样 -
$search = 'and'; // what I want to search
$nameSearch = array_search($search, $data);
print_r($nameSearch);
输出 - 空
$search='and'; // what i want to search
$nameSearch= array_filter($search, $data);
print_r($nameSearch);
输出 - 空
目标是找到与数组中的任何内容匹配的值。
意思是,如果我要求“和”作为回报我应该
Fast and furious 5
Battlefield and more
由于值包含“和”。
答案 0 :(得分:4)
array_filter
和array_search
查找完全匹配。如果您想要部分匹配,请将array_filter
与stripos
结合使用:
$search = 'and';
print_r(array_filter($data,function($a) use ($search) {
return stripos($a['name'],$search) !== false;
}));
答案 1 :(得分:2)
这对你有用
<?php
$array = array('Fast and furious ', 'Titanic the legend', 'Battlefield and more ', 'India', 'Brazil', 'Croatia', 'Denmark');
$search = preg_grep('/and.*/', $array);
echo '<pre>';
print_r($search );
echo '</pre>';
?>