1
<?php  $student = array(
     1 => array(
         "firstname" => "first",
         "name" => "first",
         "group" => "grp01",
         "score" => array(
             "ASP" => 86,
             "PHP" => 79,
             "JAVA" => 72,
             "HTML" => 96,
             "JAVASCRIPT" => 98,
             "VBNET" => 66
         )
     ),
     2 => array(
         "firstname" => "second",
         "name" => "second",
         "group" => "grp01",
         "score" => array(
             "ASP" => 80,
             "PHP" => 70,
             "JAVA" => 71,
             "HTML" => 92,
             "JAVASCRIPT" => 90,
             "VBNET" => 78
         )
     ),
     3 => array(
         "firstname" => "third",
         "name" => "third",
         "group" => "grp02",
         "score" => array(
             "ASP" => 88,
             "PHP" => 88,
             "JAVA" => 89,
             "HTML" => 96,
             "JAVASCRIPT" => 98,
             "VBNET" => 71
         )
     )  ); ?>

<?php

foreach($student as $std) {
    foreach($std as $key => $p){
        echo $std[$key];
    } } ?>

各生徒の平均スコアをエコーで印刷しようとしていますが、今は立ち往生しています。配列から文字列への変換に関する警告が表示されました。

4

3 に答える 3

2

間違った配列を繰り返しています。スコア配列を文字列に変換しようとしていない場合は、各生徒の内部で「スコア」を繰り返し処理する必要があります。

foreach($student as $std) {
    foreach($std["score"] as $language => $score) {
        echo $score;
    }
}
于 2013-04-17T23:20:59.097 に答える