[英]PHP searching multidimensional array for item
我目前有這樣一個數組設置:
$u_id= array(
array(
NUM=>'2770', DESC=>'description one'
),
array(
NUM=>'33356', DESC=>'description two'
),
array(
NUM=>'13576', DESC=>'description three'
),
array(
NUM=>'14141', DESC=>'description four'
)
);
我需要能夠通過此數組以$num
傳遞一個數字(對應於數組中的NUM =>''),並將相應的DESC =>''作為字符串存儲。 例如,搜索“ 2770”將返回“描述一”。
這樣做的最佳方法是什么?
您是否受制於此數組結構? 因為要做一個更有效的結構
$u_id= array(
'2770' => 'description one',
'33356' => 'description two',
'13576' => 'description three',
'14141' => 'description four'
);
也就是說,您僅假設鍵是數字,值是描述,而不是明確命名它們。 然后找到正確描述的代碼只是$u_id[2770]
(或$u_id[2770]
一個)。
如果不可接受,您也可以
$u_id= array(
'2770' => array(
NUM=>'2770', DESC=>'description one'
),
'33356' => array(
NUM=>'33356', DESC=>'description two'
),
'13576' => array(
NUM=>'13576', DESC=>'description three'
),
'14141' => array(
NUM=>'14141', DESC=>'description four'
)
);
即,該數字也用作找到正確對的鍵。 找到正確描述的代碼變為$u_id[2770]["NUM"]
。
在這兩種情況下,從數字中查找給定的描述都是一個步驟。 但是,如果您不能更改數組結構,則必須遍歷數組進行檢查(這可能需要與數組中所有項目一樣多的步驟)。
foreach($arrays as $arr){
if($arr['NUM']==$num){
return $arr['DESC'];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.