我正在为扑克锦标赛建立一个排行榜(得分)。我的目标是将数据回显到一个表格,以显示本赛季的得分和所有时间的得分。我希望桌子能够以最高的赛季积分排列。 我收到一条错误消息:
Notice: Undefined index: season in C:\wamp\www\UPT Site\leaders.php on line 11
当我print_r
来自$allplayers
数组的数组时,它会显示所有玩家数组正确进入,包括[season]
键和位于第6行的数据下面...
任何人都可以告诉我如何修复我的代码? (注意,真正的代码中没有行号,我只是在这里添加它们以便于讨论)。
1 foreach($allplayers as $player){
2 $i = $player[1];
3 if (${"seasonplayerid" . $i}){
4 $sum = array_sum(${"seasonplayerid" . $i});}
5 //$sum = points this season.
6 ${"playerid" . $i}['season'] = $sum;
7 }
8 function val_sort($array,$key) {
9 //Loop through and get the values of our specified key
10 foreach($array as $k=>$v) {
11 $b[] = strtolower($v[$key]);
12 }
13 asort($b);
14 /* foreach($b as $k=>$v) {
15 $c[] = $array[$k];
16 }return $c;
17 */
18 }
19 $sorted = val_sort($allplayers, '[season]');
20 foreach($allplayers as $player){
21 $i = $player[1];
22 echo ("<tr><td>" . $player[0] . $t . ${"playerid" . $i}[3] . $t . ${"playerid" . $i}[4] . $t. ${"playerid" . $i}['season'] . $t. count(${"seasonplayerid" . $i}). "</td><tr>");
23 }
以下是数组print_r
的{{1}}输出:
数组([0] =&gt; Jonathan Thompson [1] =&gt; 1 [2] =&gt; 2015-S 3 [3] =&gt; 944 [4] =&gt; 7 [season] =&gt; 470)
以下是数组中信息的关键:
$playerid1
答案 0 :(得分:1)
而不是下线
$sorted = val_sort($allplayers, '[season]');
你应该传递密钥,如下所示
$sorted = val_sort($allplayers, 'season');
希望这有帮助。
答案 1 :(得分:1)
在第19行看起来你试图在第二个参数中传递密钥但是错误地定义了它。所以,要调用function val_sort($array,$key)
你必须做类似的事情。
Therefore at line 19 change
$sorted = val_sort($allplayers, '[season]');
到
$sorted = val_sort($allplayers, 'season');
另外我建议您使用data table这是好的和快速的
答案 2 :(得分:0)
在这个例子中我做了一个狡猾的快速修复。
我在主数组中为每个数组写了一个循环到array_pop,并在array_pop
循环开始时为每个数据片段创建了一个新变量。
我还array_push
编辑了我想要排序的数据和一个新编号的ID号。
我使用rsort对新数组进行排序,然后使用ID号循环遍历它,按照我想输出数据的顺序重建第3个数组。
下次我将接受@rocky的建议并做一个数据表。我甚至可以回去重做这个页面作为数据表。说实话,我在昨天之前从未听说过数据表。一旦我将这个项目交给老板,我就会花时间学习数据表和AJAX。
谢谢大家的提示,但由于我的时间很差(这个网站明天早上需要上线),快速解决方案必须做这个时间。