0

Hi Guys には次の配列があります。

 Array
   (
    [0] => Array
      (
        [SERIAL] => 1
        [SCORE_1] => 6.6490630173025
        [SCORE_2] => 13.010510864225
        [SCORE_3] => 7.5543177306323
        [SCORE_4] => 4.1576775823101
        [SCORE_5] => 5.3696604808987
      )

    [1] => Array
      (
        [SERIAL] => 2
        [SCORE_1] => 11.861835175219
        [SCORE_2] => 0
        [SCORE_3] => 1.988806017442
        [SCORE_4] => 0.97387338276326
        [SCORE_5] => 4.0322016758707
    )

配列内の各要素の割合、たとえば SCORE_1/(SCORE_1+...+SCORE_5) を見つける必要があり、シリアルはそのままです。PHP コードは次のようになります。

$r = -1;
$namedDataArray = array();

for ($row = 2; $row <= $highestRow; ++$row) {
$dataRow = $objWorksheet->rangeToArray('A'.$row.':'.$highestColumn.$row,null, true,             true, true);
if ((isset($dataRow[$row]['A'])) && ($dataRow[$row]['A'] > '')) {
    ++$r;
    foreach($headingsArray as $columnKey => $columnHeading) {

        if($dataRow[$row][$columnKey]==0){

        $namedDataArray[$r][$columnHeading] = 0;

        }elseif($columnHeading=='SERIAL' ){

                $namedDataArray[$r][$columnHeading]=$dataRow[$row][$columnKey];
            } else {
                $x=(float)1.35;
                $a=pow($dataRow[$row][$columnKey],$x);

                $namedDataArray[$r][$columnHeading] = $a;
            }

        }
  }  
}  



echo '<pre>';

print_r($namedDataArray);

echo '</pre><hr />';

私はまだphpに不慣れで、これに苦労しています。PHPExcel を使用してファイルを読み取り、各要素を 1.35 乗しました。使用しまし$total=array_sum($namedDataArray)たが、除算しようとすると、$Score= $namedDataArray/$totalサポートされていないオペランド型と表示されます。

4

1 に答える 1

0

この行で:

$Score= $namedDataArray/$total

$namedDataArray配列です。PHP では、配列で除算を実行することはできません。代わりに数値を入力する必要があります。$Score = $namedDataArray[0]['SCORE_1'] / $total

于 2012-10-05T09:33:40.017 に答える