我有两个array
:如何使用自定义或用户定义的标准在PHP中对数组进行合并和排序?
$data1 = array(
(0) => array("level" => 1, "id" => 1, "index" => 1, "amount" => 50000),
(1) => array("level" => 1, "id" => 2, "index" => 1, "amount" => 40000),
(2) => array("level" => 1, "id" => 3, "index" => 1, "amount" => 0));
$data2 = array(
(0) => array("level" => 2, "id" => 1, "index" => 1, "amount" => 30000),
(1) => array("level" => 2, "id" => 1, "index" => 2, "amount" => 20000),
(2) => array("level" => 2, "id" => 2, "index" => 1, "amount" => 15000),
(3) => array("level" => 2, "id" => 2, "index" => 2, "amount" => 25000),
(4) => array("level" => 2, "id" => 3, "index" => 1, "amount" => 0));
我想这些数组合并成一个数组,其结果是这样的:
$expected = array(
(0) => array("level" => 1, "id" => 1, "index" => 1, "amount" => 50000),
(1) => array("level" => 2, "id" => 1, "index" => 1, "amount" => 30000),
(2) => array("level" => 2, "id" => 1, "index" => 2, "amount" => 20000),
(3) => array("level" => 1, "id" => 2, "index" => 1, "amount" => 40000),
(4) => array("level" => 2, "id" => 2, "index" => 1, "amount" => 15000),
(5) => array("level" => 2, "id" => 2, "index" => 2, "amount" => 25000));
我试着使用array_merge_recursive:
$try = array_merge_recursive($data1, $data2);
但结果是这样的:
$try = array(
(0) => array("level" => 1, "id" => 1, "index" => 1, "amount" => 50000),
(1) => array("level" => 1, "id" => 2, "index" => 1, "amount" => 40000),
(3) => array("level" => 1, "id" => 3, "index" => 1, "amount" => 0),
(4) => array("level" => 2, "id" => 1, "index" => 1, "amount" => 30000),
(5) => array("level" => 2, "id" => 1, "index" => 2, "amount" => 20000),
(6) => array("level" => 2, "id" => 2, "index" => 1, "amount" => 15000),
(7) => array("level" => 2, "id" => 2, "index" => 2, "amount" => 25000),
(8) => array("level" => 2, "id" => 3, "index" => 1, "amount" => 0));
我有我的成绩标准:其中金额= 0
我读过
- 删除阵列大约uasort和但我没有任何想法如何实现该功能来匹配我所需要的。该函数(uasort/usort)是否可以解决它或任何其他想法?请帮助我,谢谢!
可能重复[PHP数组排序使用内VAL(http://stackoverflow.com/questions/3804278/php-array -sort-using-inner-val) – hakre
我知道有很多关于使用'usort'或'uasort'对数组进行排序的参考,就像我在我的问题中所说的那样,但我仍然混淆了如何使用多个标准来实现,所以我在这里问这个问题。感谢@deceze给我清楚的例子。 –