[英]PHP Outputting Key Names From Nested Array
I have an array
: 我有一个array
:
$cats = array(
'guitars' => array (
'electric-guitars',
'acoustic-guitars',
'bass',
'electro-acoustic',
'effects-fx-pedals',
'guitar-amps',
'classical-guitars',
'guitar-recording',
'folk',
'cases-stands',
'guitar-care',
'guitar-accessories'
),
'drums',
'keyboards',
'studio',
'computer',
'dj-pa',
'brass',
'accessories'
);
And I'm trying to output the top level keys so it outputs the following: 我正在尝试输出顶级密钥,因此它输出以下内容:
guitars
drums
keyboards
studio
computer
dj-pa
brass
accessories
I'm using this foreach
loop: 我正在使用此foreach
循环:
foreach($cats as $cat => $cat_name) {
echo '<div>' . $cat_name . '</div>';
}
But this instead outputs: 而是输出:
Array
drums
keyboards
studio
computer
dj-pa
brass
accessories
If anyone can help it'd be greatly appreciated! 如果有人可以提供帮助,将不胜感激!
You're trying to output the value, rather than the key. 您正在尝试输出值,而不是键。 When you use foreach(... as ... => ...)
, the syntax is foreach($array as $key => $value)
. 当您使用foreach(... as ... => ...)
,语法为foreach($array as $key => $value)
。 Your variable names are backwards. 您的变量名是向后的。 Also, you need to use is_array()
to figure out what the output is, because you are inconsistent in your use of key names versus values: 另外,您还需要使用is_array()
来确定输出是什么,因为您在键名和值的使用上不一致:
foreach($cats as $cat_name => $cat) {
if(is_array($cat)) { // guitars
echo '<div>' . $cat_name . '</div>';
}
else { // the other values have numeric keys
echo '<div>' . $cat . '</div>';
}
}
Output (tags omitted for readability): 输出(省略标签以提高可读性):
guitars
drums
keyboards
studio
computer
dj-pa
brass
accessories
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.