[英]Get array value for a specific key
如果上面的meta_key
等於first_name
,我想獲取meta_value
的值,我該怎么做?
我正在執行以下操作:
echo $name_data[1]['meta_value'];
由於meta_value
並不總是位於[1]
位置,因此無法使用。
這是數據,其中有數百個條目,但是數據混合在一起(即,同一數據並不總是出現在0,1,2 etc數組中)。
Array
(
[0] => Array
(
[umeta_id] => 3221
[user_id] => 130
[meta_key] => nickname
[meta_value] => email@domain.com
)
[1] => Array
(
[umeta_id] => 3222
[user_id] => 130
[meta_key] => first_name
[meta_value] => Jim
)
[2] => Array
(
[umeta_id] => 3223
[user_id] => 130
[meta_key] => last_name
[meta_value] => Jones
)
)
Array
(
[0] => Array
(
[umeta_id] => 3221
[user_id] => 130
[meta_key] => nickname
[meta_value] => email@domain.com
)
[1] => Array
(
[umeta_id] => 3222
[user_id] => 130
[meta_key] => first_name
[meta_value] => John
)
[2] => Array
(
[umeta_id] => 3223
[user_id] => 130
[meta_key] => last_name
[meta_value] => Jones
)
)
您可以將array_search
與array_column
結合使用以找到適當的索引,以從中獲取值:
$k = array_search('first_name', array_column($array, 'meta_key'));
if ($k !== false)
$first_name = $array[$k]['meta_value'];
更籠統地說,您可以編寫一個函數以返回給定鍵的值:
function get_value($array, $key) {
$k = array_search($key, array_column($array, 'meta_key'));
if ($k !== false)
return $array[$k]['meta_value'];
else
return '';
}
echo get_value($array, 'first_name') . PHP_EOL;
echo get_value($array, 'nickname') . PHP_EOL;
輸出:
Jim
email@domain.com
隨着foreach
,
foreach($name_data as $meta_data){
if("first_name" == $meta_data["meta_key"]){
echo $meta_data["meta_value"];
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.