问题描述
我有这个脚本:
- 回显
$sets
中出现了多少个时间数字,按频率类别对它们进行排序(例如出现一次的值:1,2,3 出现两次的值:8,9,10 ....等)
<?PHP
$set1 = ['23','11','52','33','1','4'];
$set2 = ['66','70','55','8','22','1'];
$set3 = ['38','21','51','53','9'];
$set4 = ['14','31','54','5','73','39'];
$set5 = ['10','3','59','39'];
$set6 = ['22','13','4','39'];
$set7 = ['40','30'];
$set8 = ['88','25','71','19'];
$set9 = ['10','30','49','78','46'];
$set10 = ['15','32','11'];
$set11 = ['23','4'];
$set12 = ['26','1'];
$set13 = ['38','9'];
$set14 = ['94','64','39'];
$set15 = ['10','63','39'];
$set16 = ['92','39'];
$set17 = ['40','20'];
$set18 = ['8','89'];
$set19 = ['90','39','15','26'];
$set20 = ['10','36','94','35','18'];
$mergedArray = array_merge($set1,$set2,$set3,$set4,$set5,$set6,$set7,$set8,$set9,$set10,$set11,$set12,$set13,$set14,$set15,$set16,$set17,$set18,$set19,$set20);
$frequencies = array_count_values($mergedArray);
$inverse_frequencies = [];
foreach ($frequencies as $number => $count) {
$inverse_frequencies[$count][] = $number;
}
ksort($inverse_frequencies);
foreach ($inverse_frequencies as $count => $numbers_array) {
echo "Values that appear $count times: " . implode(',',$numbers_array) . '<br>';
}
- 与 $sets 表相比,回显特定 $extraset 数字的频率
$extraset = ['1','52'] ;
foreach ($extraset as $element) {
$frequency = $frequencies[$element]??0;
echo "Extraset element '$element' appears $frequency times<br>";
我需要的是读取外部 xml 文件中 $sets 的值,而不是将它们放入我的 PHP 文件中。
所以我正在尝试使用 PHPExcel,告诉他从哪里收集数据(我只需要 xls 文件的特定部分)。
<?PHP
require_once "Classes/PHPExcel.PHP";
$path = "original_source.xls";
$reader = PHPExcel_IOFactory::createReaderForFile($path);
$excel_Obj = $reader->load($path);
//Get the last sheet in excel
//$worksheet=$excel_Obj->getActiveSheet();
//Get the first sheet in excel
$worksheet=$excel_Obj->getSheet('0');
$lastRow = $worksheet->getHighestRow();
$columncount = $worksheet->getHighestDataColumn();
$columncount_number = PHPExcel_Cell::columnIndexFromString($columncount);
$row_start = 6;
$col_start = 2; //Index of column - C
$col_end = 21; //Index of column - V
$sets = array();
for ($row = 0; $row <= $lastRow; $row++) {
$set = array();
for ($col = 0; $col <= $columncount_number; $coL++) {
if ($row >= $row_start && $col >= $col_start && $col <= $col_end) {
array_push($set,$worksheet->getCell(PHPExcel_Cell::stringFromColumnIndex($col).$row)->getValue());
}
}
if ($row >= $row_start) {
array_push($sets,$set);
}
}
$mergedArray = array_merge($set1,$set10);
$frequencies = array_count_values($mergedArray);
$inverse_frequencies = [];
foreach ($frequencies as $number => $count) {
$inverse_frequencies[$count][] = $number;
}
ksort($inverse_frequencies);
foreach ($inverse_frequencies as $count => $numbers_array) {
echo "Values that appear $count times: " . implode(',$numbers_array) . '<br>';
}
$extraset = ['1','52'] ;
foreach ($extraset as $element) {
$frequency = $frequencies[$element]??0;
echo "Extraset element '$element' appears $frequency times<br>";
但它不起作用,我仍然收到错误 500。我的代码有什么问题?请注意,我对 PHP 很陌生...! 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)