0

foreach不获取数组的结尾。我想在另一种方法中使用它的结尾:

$array = array(
"Language programings"=>array("php" => 100,"js" => 200),'html'=>12);
 foreach ($array as $kk=>$val1)
   {
     echo $kk.'<br/>';
     foreach ($val1 as $key=>$val2)
      {  
         if (! end(array_keys($array)))
             echo $val2;
      }
      echo end(array_value);//must be show 12
   }
4

2 回答 2

1

如果我理解正确,在您的 if() 语句中,您正在尝试查看指针是否位于数组的末尾。不幸的是,在这种情况下, end() 永远不会为假,因此 echo $val2; 行 永远不会执行。

尝试更换

if (! end(array_keys($array)))

if ($key <> end(array_keys($array))

你的最后一行也应该是:

echo end(array_values($array));
于 2012-09-05T05:56:54.280 回答
0

尝试使用以下代码:

$array = array("Language programings"=>array("php" => 100,"js" => 200),'html'=>12);

foreach($array as $key1 => $val1){
    if(is_array($val1)){
        echo $key1.'<br/>';
        foreach($val1 as $key2 => $val2){
            if(is_array($val2)){
                foreach($val2 as $k => $v){
                    echo $v.'<br/>';
                }
            } else {
                echo $val2.'<br/>';
            }
        }
    }
}
echo end(array_values($array));  

结果将是:

Language programings  
100  
200  
12
于 2012-09-05T07:00:55.410 回答