对一组调用进行排序

时间:2015-12-09 01:42:23

标签: php arrays sorting object multidimensional-array

我有一个包含这些单元格的数组:

update_table('0', 'Real Klarin', '1', '2', '3', '4', '5', '6', '12', '8');
update_table('1', 'RAKoun', '1', '2', '3', '4', '5', '6', '11', '9');
update_table('2', 'Panklouviakos', '1', '2', '3', '4', '5', '6', '10', '10');
update_table('3', 'Ouza&Zabon', '1', '2', '3', '4', '5', '6', '9', '11');
update_table('4', 'ui48975', '1', '2', '3', '4', '5', '6', '8', '12');
update_table('5', 'Genia tou 98', '1', '2', '3', '4', '5', '6', '7', '13');

并构造成这样的循环:

$arrayOfCalls[] = "update_table('".($inc-1)."', '".$team."', '".$gp."', '".$w."', '".$d."', '".$l."', '".$gf."', '".$ga."', '".$gd."', '".$pts."');";

我想按update_table()的最后一个参数排序,即$ pts。所以,我读到了这个问题:Sort Multi-dimensional Array by Value,这意味着我应该有一个多维数组,这不是我所拥有的。我试过了$arrayOfCalls['.$pts.'],但这没有任何效果。

我该怎么办(注意我是PHP的初学者)?

哦,如果是平局,我想按$gd排序,但是我们可以按第一个键进行排序,我想我会找到第二个方法!

1 个答案:

答案 0 :(得分:1)

考虑到update_table看起来像一个函数,所有传递的数据都可以放入多维数组中,例如。

$updateArr = array('0' => array('Real Klarin', '1', '2', '3', '4', '5', '6', '12', '8'),
'1' => array('RAKoun', '1', '2', '3', '4', '5', '6', '11', '9'),
'2' => array('Panklouviakos', '1', '2', '3', '4', '5', '6', '10', '10'),
'3' => array('Ouza&Zabon', '1', '2', '3', '4', '5', '6', '9', '111'),
'4' => array('ui48975', '1', '2', '3', '4', '5', '6', '8', '12'),
'5' => array('Genia tou 98', '1', '2', '3', '4', '5', '6', '7', '13'));

然后您可以填充$arrayofCalls数组

$arrayOfCalls = array();
foreach($updateArr as $id => $values)
{
  array_push($arrayOfCalls,"update_table('".$id."', '".$values[0]."', '".$values[1]."', '".$values[2]."', '".$values[3]."', '".$values[4]."', '".$values[5]."', '".$values[6]."', '".$values[7]."', '".$values[8]."');");
}
通过这种方式,您可以在foreach循环之前执行multi-dimensional array sorting。正如您所看到的,$updateArr或多或少与问题所描述的格式相同