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
サポートされていないオペランド型と表示されます。