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