我有一个像这样的数组
0 => array:4 [▼
"Name" => "Aroma Therapy - 45 minutes"
"ID" => "1000000015"
"Price" => "50.00"
"Category" => "Aroma"
]
1 => array:4 [▼
"Name" => "Aroma Therapy - 60 Minutes"
"ID" => "0000000003"
"Price" => "100.00"
"Category" => "Aroma"
我想要实现的是,每当用户搜索'therapy'
或'aroma'
时,我都希望与此数组的名称匹配并返回其价格, ID。
我尝试使用strpos()
strstr()
和正则表达式,我可以找到搜索是否匹配但是我无法获得匹配时返回数组的功能。
因此,如果用户搜索'therapy'
,我想在一个名为$result
的变量中返回上面的两个数组。所以我可以像这样访问它的名字,ID和价格
$result->Name, $result->ID, $result->Price
有关如何实现此类功能的任何想法?
答案 0 :(得分:3)
使用array_filter
和stripos()
,您可以获取数组项
stripos
- 找到第一次出现的位置 字符串中不区分大小写的子字符串
array_filter
- 使用回调过滤数组的元素 功能
// keyword to be searched
$keyword = 'aroma';
// you will get all array items of matched
$result_array = array_filter($array, function($item) use ($keyword) {
return ( stripos($item['Name'], $keyword) !== false );
});
// to convert to object
$object = json_decode( json_encode($result_array) );