簡體   English   中英

通過php數組搜索

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM