多维数组排序的算法

$test_data = array(
  array("id"=>1,"data"=>"a"),
  array("id"=>3,"data"=>"c"),
  array("id"=>2,"data"=>"b"),
  array("id"=>4,"data"=>"d"),
  array("id"=>6,"data"=>"f"),
  array("id"=>5,"data"=>"e")
  );

按以下数组顺序排列:

$id_arr = array (2,1,3,4,5,6);


代码如下:

$test_data = array(
  array("id"=>1,"data"=>"a"),
  array("id"=>3,"data"=>"c"),
  array("id"=>2,"data"=>"b"),
  array("id"=>4,"data"=>"d"),
  array("id"=>6,"data"=>"f"),
  array("id"=>5,"data"=>"e")
  );


$id_arr = array (2,1,3,4,5,6);

foreach($test_data as $v)
  $r[] = array_search($v['id'], $id_arr);

array_multisort($r, $test_data);

print_r($test_data);

输出结果:

Array
(
  [0] => Array
  (
  [id] => 2
  [data] => b
  )

  [1] => Array
  (
  [id] => 1
  [data] => a
  )

  [2] => Array
  (
  [id] => 3
  [data] => c
  )

  [3] => Array
  (
  [id] => 4
  [data] => d
  )

  [4] => Array
  (
  [id] => 5
  [data] => e
  )

  [5] => Array
  (
  [id] => 6
  [data] => f
  )

)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值