我有一个像这样的阵列.
$array = Array(
[0] => Array
(
[name] => Eve Greenhaw
[id] => 456564765
)
[1] => Array
(
[name] => Tyrone Hallberg
[id] => 5467652534
)
[2] => Array
(
[name] => Julio Torbert
[id] => 254564564
)
[3] => Array
(
[name] => John Torbert
[id] => 5462253455
)
[4] => Array
(
[name] => John Kimmell
[id] => 4525462
)
)
Run Code Online (Sandbox Code Playgroud)
我想搜索数组并返回名称和ID.例如,如果用户搜索"John",我希望函数返回键3和4.如果用户只搜索"J",则该函数应返回键2,3和4.
谢谢
一种可能性是array_filter:
array_filter(array $ input,callback $ callback)
迭代输入数组中的每个值,将它们传递给回调函数.如果回调函数返回true,则输入中的当前值将返回到结果数组中.数组键被保留.
每个成员$array本身就是一个数组,所以你可以这样做(假设你正在搜索名称和id):
$query = 'whatever';
function single_search($member) {
global $query;
$in_name = strpos($member['name'], $query);
$in_id = strpos($member['id'], $query);
return is_numeric($in_name) || is_numeric($in_id);
}
$filtered = array_filter($array, 'single_search');
Run Code Online (Sandbox Code Playgroud)
该$filtered数组包含包含查询的所有名称/ ID对.但如果您只对键感兴趣,可以再使用一个功能:array_keys.它可以返回键的数组$filtered,这将是与查询等匹配的所有键等等:
$matched_keys = array_keys($filtered);
Run Code Online (Sandbox Code Playgroud)
祝好运.
| 归档时间: |
|
| 查看次数: |
2195 次 |
| 最近记录: |