PHP 多维数组按照指定的顺序进行排序

叁歲伎倆 2023-03-01 09:22 96阅读 0赞

PHP 多维数组按照指定的顺序进行排序

  1. public function ceshi()
  2. {
  3. $arr1 = array(
  4. array('id' => 1, 'name' => 'yhp'),
  5. array('id' => 2, 'name' => 'yhp2'),
  6. array('id' => 3, 'name' => 'yhp3'),
  7. array('id' => 4, 'name' => 'yhp4'),
  8. array('id' => 5, 'name' => 'yhp5'),
  9. array('id' => 6, 'name' => 'yhp6'),
  10. array('id' => 7, 'name' => 'yhp7'),
  11. array('id' => 8, 'name' => 'yhp8'),
  12. array('id' => 9, 'name' => 'yhp9'),
  13. array('id' => 10,'name' => 'yhp10'),
  14. );
  15. echo "排序前的数组:<pre>";
  16. print_r($arr1);
  17. echo "</pre>";
  18. usort($arr1, array($this, "compare"));
  19. echo "排序后的数组:<pre>";
  20. print_r($arr1);
  21. echo "</pre>";
  22. }
  23. public function compare($a, $b)
  24. {
  25. $arr2 = array(6,8,7,9,3,2,4,1,5,10,11,12);
  26. return (array_search($a['id'], $arr2) < array_search($b['id'], $arr2)) ? -1 : 1;
  27. }

前面根据指定顺序合并 后面随便

  1. public function ceshi()
  2. {
  3. $arr1 = array(
  4. array('id' => 1, 'name' => 'yhp'),
  5. array('id' => 2, 'name' => 'yhp2'),
  6. array('id' => 3, 'name' => 'yhp3'),
  7. array('id' => 4, 'name' => 'yhp4'),
  8. array('id' => 5, 'name' => 'yhp5'),
  9. array('id' => 6, 'name' => 'yhp6'),
  10. array('id' => 7, 'name' => 'yhp7'),
  11. array('id' => 8, 'name' => 'yhp8'),
  12. array('id' => 9, 'name' => 'yhp9'),
  13. array('id' => 10,'name' => 'yhp10'),
  14. );
  15. $arr2 = array(6,8,7,9);
  16. $arrNum = count($arr1);
  17. for($i=0;$i<$arrNum;$i++){
  18. if(in_array($arr1[$i]['id'],$arr2) ){
  19. $headData[] = $arr1[$i];
  20. unset($arr1[$i]);
  21. }
  22. }
  23. //echo "排序后的数组:";
  24. usort($headData, array($this, "compare"));
  25. print_r(array_merge($headData,$arr1));
  26. }
  27. public function compare($a, $b)
  28. {
  29. $arr2 = array(6,8,7,9);
  30. return (array_search($a['id'], $arr2) < array_search($b['id'], $arr2)) ? -1 : 1;
  31. }

参考链接
PHP 多维数组按照指定的顺序进行排序

发表评论

表情:
评论列表 (有 0 条评论,96人围观)

还没有评论,来说两句吧...

相关阅读