簡體   English   中英

防止在打印值時打印關鍵索引-PHP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM