[英]PHP search key in array and return its value?
我想在多維數組中搜索鍵,我想獲得與該鍵關聯的對應值。 例如,我想從下面的數組中提取以下文本:
SENT AT 12.08ms
和文字
sample id 41962
以下是數組 print_r() output:
Array
(
[0] => Array
(
[VERSION] => Array
(
[0] => Array
(
[group] =>
[param] => Array
(
)
[value] => Array
(
[0] => Array
(
[0] => 3.0
)
)
)
)
[SAMPLE] => Array
(
[0] => Array
(
[group] =>
[param] => Array
(
)
[value] => Array
(
[0] => Array
(
[0] => sample id 41962
)
)
)
)
[TSAM] => Array
(
[0] => Array
(
[group] =>
[param] => Array
(
)
[value] => Array
(
[0] => Array
(
[0] => sample group 141
)
[1] => Array
(
[0] => ¯
)
[2] => Array
(
[0] => sample batch 81
)
[3] => Array
(
[0] =>
)
[4] => Array
(
[0] =>
)
)
)
)
[STATUS] => Array
(
[0] => Array
(
[group] =>
[param] => Array
(
[TYPE] => Array
(
[0] => CART
)
)
[value] => Array
(
[0] => Array
(
[0] => SENT AT 12.08ms
)
)
)
)
)
)
有人可以為我提供上述問題的優化代碼嗎? 多維數組包含超過 5000 到 10000 個 arrays。
請查看我的功能是否適合您:
function get_value_by_key($array,$key)
{
foreach($array as $k=>$each)
{
if($k==$key)
{
return $each;
}
if(is_array($each))
{
if($return = get_value_by_key($each,$key))
{
return $return;
}
}
}
}
采用:
$array = array('array1'=>array('array2'=>array('find_some_key'=>'some_value')));
echo get_value_by_key($array,'find_some_key'); // outputs: some_value
如果所有數組鍵都具有相同的結構,則以下代碼應起作用:
foreach($array as $item){
$sentat = $item['STATUS'][0]['value'][0][0];
$sample = $item['SAMPLE'][0]['value'][0][0];
}
更詳細的信息將幫助我們為您提供更多提示:)
我遇到了同樣的問題,所以我開發了此功能來解決
private function array_key_search($value, $key) {
$result = false;
if (is_array($value)) {
foreach ($value as $k => $v) {
$result = $k === $key ? $v : $this->array_key_search($v, $key);
if ($result) {
break;
}
}
}
return $result;
}
此函數循環遍歷數組的所有鍵,並使用您為變量$ key分配的名稱檢索首次出現
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.