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() は決して false にならないので、行は 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 に答える