我有以下数组
$records = array(
array("postId"=>"1","grid"=>"6"),
array("postId"=>"2","grid"=>"3"),
array("postId"=>"3","grid"=>"6"),
array("postId"=>"4","grid"=>"3"),
array("postId"=>"5","grid"=>"3"),
array("postId"=>"6","grid"=>"12"),
array("postId"=>"7","grid"=>"3"),
);
我希望能以一种方式对该数组进行排序,使得任何数量的连续的“网格”数之和均等于12。
例如:上述数组中“网格”的值为:6,3,6,3,3,12,3
(6+6=12), (3+3+3+3=12),(12=12) 因此新的顺序应为6,6,3,3,3,3,12
或 3,3,3,3,12,6,6
或 6,3,3,6,3,3,12
因此,在对数组进行排序后,新的数组应如下所示:
$records=array(
array("postId"=>"1","grid"=>"6"),
array("postId"=>"3","grid"=>"6"),
array("postId"=>"2","grid"=>"3"),
array("postId"=>"4","grid"=>"3"),
array("postId"=>"5","grid"=>"3"),
array("postId"=>"7","grid"=>"3"),
array("postId"=>"6","grid"=>"12"),
);
我在php手册中搜索了这些函数:sort,uasort,uksort,usort,但我不知道如何使用它们。
请问您能告诉我如何通过PHP实现排序吗?
更新:
网格(grid)的值始终为3或6或12(仅这三个数字)。
问题:
$records = array(
array("postId"=>"1","grid"=>"3"),
array("postId"=>"2","grid"=>"6"),
array("postId"=>"3","grid"=>"3"),
array("postId"=>"4","grid"=>"3"),
array("postId"=>"5","grid"=>"6"),
array("postId"=>"6","grid"=>"6"),
array("postId"=>"7","grid"=>"3"),
array("postId"=>"8","grid"=>"6"),
);