[英]Search through an php array
我有一個像這樣的數組。
$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
)
)
我想搜索數組並返回名稱和ID。 例如,如果用戶搜索“ John”,我希望函數返回鍵3和4。如果用戶僅搜索“ J”,則函數應返回鍵2,3和4。
謝謝
一種可能是array_filter
:
array_filter (數組$ input ,回調$ 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');
$filtered
數組包含所有包含查詢的名稱/標識對。 但是,如果您僅對鍵感興趣,則可以使用另一個函數: array_keys
。 它可以返回$filtered
中的鍵數組,這將是所有與查詢等匹配的鍵,等等:
$matched_keys = array_keys($filtered);
祝好運。
在foreach()中迭代$ array,並使用stripo()或preg_match()查找匹配的記錄並返回鍵。 很簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.