[英]Prevent printing key indexes while printing the value - PHP
嗨,我有一個像這樣的數組:
array(
'Home' => array(
'About',
'Contact'
),
'News'
);
我寫這是為了打印它們:
function show($arr){
foreach($arr as $key => $value){
echo "\n<ul>\n<li>\n" . $key;
if( ! empty($value)){
if(is_array($value)){
show($value);
}else{
echo $value;
}
}
echo "\n</li>\n</ul>\n";
}
}
我的問題是當我嘗試echo $value
它將打印如下內容:
Home
0About
1Contact
0News
我試圖在這里顯示echo $value
地方echo $key
,我知道它是要在News字段或任何非數組字段之前寫入的鍵索引。 我通過將單個字段更改為此來解決它:
array(
'Home' => array(
'About' => **array()**,
'Contact' => **array()**
),
'News' => **array()**
);
但我不想定義其他空數組!
和平了!
function show($arr){
foreach($arr as $key => $value){
echo "\n<ul>\n<li>";
if( ! empty($value)){
if(is_array($value)){
echo '\n'.$key;
show($value);
}else{
echo $value;
}
}
echo "\n</li>\n</ul>\n";
} }
我要說的是,您必須更改($ key)回顯的位置。 如果它不是數組,那么您就不必關心鍵,對嗎?
function show($arr){
foreach($arr as $key => $value){
if (is_numeric($key))
echo "\n<ul>\n<li>\n";
else
echo "\n<ul>\n<li>\n" . $key;
if( ! empty($value)){
if(is_array($value)){
show($value);
}else{
echo $value;
}
}
echo "\n</li>\n</ul>\n";
}
}
我猜is_numeric應該可以解決您的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.