簡體   English   中英

PHP在多維數組中搜索項目

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

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