PHP数组重新排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数组重新排序相关的知识,希望对你有一定的参考价值。

arr":["q":"aaa","w":"bbb","o":"1",
"q:"ccc","w":"ddd","o":"8",
"q":"eee","w":"fff","o":"4",
"q":"ggg","w":"hhh","o":"2"]

将如上数组按照键名"o"升序排序
变成如下样子:
arr":["q":"aaa","w":"bbb","o":"1",
"q":"ggg","w":"hhh","o":"2",
"q":"eee","w":"fff","o":"4",
"q:"ccc","w":"ddd","o":"8"]

array_multisort 对多个数组或多维数组进行排序 排序的依据可以是自定义,完全可以用一个一维数组去排序多维数组.

$arrSort = [];
foreach($arr as $info) 
    $arrSort[] = $info['o'];

sort($arrSort);
array_multisort($arrSort, $arr);

array_multisort

你研究一下.这个是完全可行的.

追问

看了半天 也没用明白。输出的结果一直是false。

参考技术A 首先来说,你这个是个json 需要先转化成数组在进行二维数组排序可以用usort追问

恩。那将这个转换成数组之后。用usort()或者是asort()都可以我知道。可是 教程里都是array("Bill"=>"60","Steve"=>"56","Mark"=>"31");这样的数组 我的那样的应该怎么写呢

PHP递归重新排序无限级分类数组

public static  function Menus($id,$spac=0){

/* $data = array( 1 => array(‘id‘ => 1,‘name‘ => ‘name1‘,‘pid‘ => 0),
2 => array(‘id‘ => 2,‘name‘ => ‘name2‘,‘pid‘ => 0),
3 => array(‘id‘ => 3,‘name‘ => ‘name3‘,‘pid‘ => 1),
4 => array(‘id‘ => 4,‘name‘ => ‘name4‘,‘pid‘ => 0),
5 => array(‘id‘ => 5,‘name‘ => ‘name5‘,‘pid‘ => 3),
6 => array(‘id‘ => 6,‘name‘ => ‘name6‘,‘pid‘ => 3),
);*/
$menu = Menu::model()->findAll();

$arr = array();
// $arr = array_push($arr,$arr);
foreach ($menu as $k => $v) {
if ($v[‘parent_id‘] == $id) {
// $arr[] = $v;
//$v[‘id‘] =str_repeat(‘ ‘,$spac) .$v[‘name‘];
// $str .= "<option value=‘" . $v[‘id‘] . "‘>" . str_repeat("&nbsp;",$spac) . "|--" . $v[‘name‘] . "</option>";
// self::Menus($v[‘id‘],$spac);
$arr[] = $v;
$arr = array_merge($arr,self::Menus($v[‘menu_id‘])); //递归合并数组

}

}
// print_r($arrs);
return $arr;
}

以上是关于PHP数组重新排序的主要内容,如果未能解决你的问题,请参考以下文章

PHP |通过重新排序从数组中删除元素?

PHP递归重新排序无限级分类数组

PHP按二维数组中的某个值重新排序数组 usort的使用方法

PHP二维数组按照指定的顺序排序

087-把PHP数组中的元素按随机顺序重新排列shuffle

php 数组排序以及按照某个字段排序