php数组值如何根据另一个数组的值进行排序 10
$a=array(array('id'=>3,'status'=>10),array('id'=>4,'status'=>11),array('id'=>5,'statu...
$a=array(array('id'=>3,'status'=>10),array('id'=>4,'status'=>11),array('id'=>5,'status'=>30),array('id'=>6,'status'=>100),array('id'=>7,'status'=>20));
$b=array(100,10,20,21,11,30);
数组$a里status根据$b值的顺序进行排序,期望如下
$a=array(array('id'=>6,'status'=>100),array('id'=>3,'status'=>10),array('id'=>7,'status'=>20),array('id'=>4,'status'=>11),array('id'=>5,'status'=>30)); 展开
$b=array(100,10,20,21,11,30);
数组$a里status根据$b值的顺序进行排序,期望如下
$a=array(array('id'=>6,'status'=>100),array('id'=>3,'status'=>10),array('id'=>7,'status'=>20),array('id'=>4,'status'=>11),array('id'=>5,'status'=>30)); 展开
2个回答
展开全部
<?php
$a = array(
array(
'id' => 3,
'status' => 10,
),
array(
'id' => 4,
'status' => 11,
),
array(
'id' => 5,
'status' => 30,
),
array(
'id' => 6,
'status' => 100,
),
array(
'id' => 7,
'status' => 20,
),
);
$b = array(100, 10, 20, 21, 11, 30);
print_r(sortByKey($a,$b));
function sortByKey($arr, $order)
{
$newArr = array();
foreach ($order as $item) {
foreach ($arr as $val) {
if ($val['status'] == $item) {
$newArr[] = array(
'id' => $item,
'status' => $val['id']);
}
}
}
return $newArr;
}
Array
(
[0] => Array
(
[id] => 100
[status] => 6
)
[1] => Array
(
[id] => 10
[status] => 3
)
[2] => Array
(
[id] => 20
[status] => 7
)
[3] => Array
(
[id] => 11
[status] => 4
)
[4] => Array
(
[id] => 30
[status] => 5
)
)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
usort()进行自定义排序,这个可以查手册
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询