我有这个数组:
Array
(
[01] => Array
(
[cat_id] => 15
[offset] => 4951
)
[02] => Array
(
[cat_id] => 15
[offset] => 4251
)
[03] => Array
(
[cat_id] => 15
[offset] => 4001
)
[04] => Array
(
[cat_id] => 15
[offset] => 4951
)
[05] => Array
(
[cat_id] => 15
[offset] => 3301
)
)
我有使用array_key_exists获取第一级密钥的代码;
if ((array_key_exists("01", $completed_steps))) {
echo "Found 0!";
}
但我现在想得到cat_id值,我怎么能在2级数组中做到这一点?
答案 0 :(得分:2)
使用下面的代码,它将找到n级深度的关键并搜索给定的密钥
function multiKeyExists(array $arr, $key) {
// is in base array?
if (array_key_exists($key, $arr)) {
return $arr[$key]['cat_id']; // returned cat_id
}
// check arrays contained in this array
foreach ($arr as $element) {
if (is_array($element)) {
if (multiKeyExists($element, $key)) {
return $element[$key]['cat_id']; // returned cat_id
}
}
}
return false;
}
答案 1 :(得分:0)
试试这样:
if ((array_key_exists('cat_id', $completed_steps['01'])) {
echo $completed_steps['01']['cat_id'];
}
答案 2 :(得分:0)
您可以从索引中获取特定的键值。请参阅以下示例:
$check_key = "01";
if ((array_key_exists($check_key, $completed_steps))) {
echo "Found 0! value of cat_id = ".$completed_steps[$check_key]['cat_id'];
}
答案 3 :(得分:0)
使用以下代码
$final_cat_id_array = array();
$key_to_check = 'cat_id';
$catFunc = function($currentArr) use (&$final_cat_id_array, $key_to_check){
if(is_array($currentArr) && array_key_exists($key_to_check, $currentArr)){
$final_cat_id_array[] = $currentArr[$key_to_check];
}
};
$arr = array(
"01" => array("cat_id" => 1, "offset" => true),
"02" => array("cat_id" => 2, "offset" => false),
"03" => array("cat_id" => 3, "offset" => true),
);
array_walk($arr, $catFunc);
print_r($final_cat_id_array);
最终$final_cat_id_array
将包含所有cat_id
。