簡體   English   中英

PHP搜索多維數組有多個結果?

[英]PHP search multidimensional array with more than one result?

我找到了一種搜索我的多維數組並輸出結果的方法,它可以工作,但是它只會找到第一個匹配項並停止。 如果數組中有多個匹配項,我希望能夠全部顯示。

我的數組如下所示(鍵的第一層從0、1、2等開始):

Array
(
    [0] => Array
        (
            [mydevice] => blahblah
            [ipadd] => 10.10.10.209
            [portnum] => 16040
        )

function searcharray($value, $key, $array) {
   foreach ($array as $k => $val) {
       if ($val[$key] == $value) {
           return $k;
       }
   }
   return null;
}

$myoutput = searcharray($ptn2, mydevice, $newresult);

然后,我可以使用$newresult[$myoutput][mydevice]類的東西回顯結果。

但是,如果我在數組中有多個條目,並且在“ mydevice”鍵中有匹配的數據,則它不會返回它們(只是第一個)。

那是因為return中斷了功能。 您可以使用如下形式:

function searcharray($value, $key, $array) {
    $result = array();    
    foreach ($array as $k => $val) {
        if ($val[$key] == $value) {
            $result[] = $k;
        }
    }
    return $result;
}

現在,您將始終獲得一個數組作為結果-如果未找到任何內容,則為空。 您可以像這樣使用

$mydevicekeys = searcharray($ptn2, "mydevice", $newresult);
foreach ($mydevicekeys as $mydevicekey) {
    // work with $newresult[ $mydevicekey ]["mydevice"]
}

因此,將結果添加到數組中:)

function searcharray($value, $key, $array) {
   $res = array();
   foreach ($array as $k => $val) {
       if ($val[$key] == $value) {
            $res[] = $key;
       }
   }
   return $res;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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