首頁 > 後端開發 > php教程 > php基础篇-二维数组排序姐妹篇

php基础篇-二维数组排序姐妹篇

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-23 13:51:36
原創
901 人瀏覽過

前面介绍了php多维数组排序的一个函数array_multisort() ,想了解的人可以点击二维数组排序 array_multisort


下面介绍下不适用array_multisort()进行多维数组的排序。

这里介绍下2个php排序函数,一个是asort,一个是arsort.

asort(array,sorttype) 函数对数组进行排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。

可选的第二个参数包含了附加的排序标识。

  • SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。
  • SORT_NUMERIC - 把值作为数字来处理
  • SORT_STRING - 把值作为字符串来处理
  • SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置。
  • 如果成功则返回 TRUE,否则返回 FALSE。


    arsort(array,sorttype) 函数对数组进行逆向排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。这个函数的用法和asort一样,只不过这个是对数组的索引进行逆向排序。


    下面给出二维数组的排序算法:

    <?php 
    登入後複製
    <span style="white-space:pre">	</span>function array_sort($arr,$key,$type='asc'){ <span style="white-space:pre">		</span>$keyvalues = $new_array = array();<span style="white-space:pre">		</span>foreach ($arr as $k=>$v){<span style="white-space:pre">			</span>$keyvalues[$k] = $v[$key];<span style="white-space:pre">		</span>}<span style="white-space:pre">		</span>if($type == 'asc'){<span style="white-space:pre">			</span>asort($keyvalues);<span style="white-space:pre">		</span>}else{<span style="white-space:pre">			</span>arsort($keyvalues);<span style="white-space:pre">		</span>}<span style="white-space:pre">		</span>foreach ($keyvalues as $k=>$v){<span style="white-space:pre">			</span>$temparray[$k] = $arr[$k];<span style="white-space:pre">		</span>}<span style="white-space:pre">		</span>return $temparray; <span style="white-space:pre">	</span>}<span style="white-space:pre">	</span>$student = array(<span style="white-space:pre">		</span>array('name'=>'张三','age'=>'18','weight'=>100,'height'=>180),<span style="white-space:pre">		</span>array('name'=>'李四','age'=>'20','weight'=>200,'height'=>150),<span style="white-space:pre">		</span>array('name'=>'王五','age'=>'30','weight'=>150,'height'=>165),<span style="white-space:pre">		</span>array('name'=>'赵六','age'=>'50','weight'=>90,'height'=>173),<span style="white-space:pre">		</span>array('name'=>'孙七','age'=>'35','weight'=>160,'height'=>170)<span style="white-space:pre">	</span>);<span style="white-space:pre">	</span>$studentlist = array_sort($student,'weight');<span style="white-space:pre">	</span>var_dump($studentlist);?>
    登入後複製


    通过asort这个函数,将保留二维数组的索引排序,再通过这个索引,即可得到排序好的二维数组的索引对应的值。
    相關標籤:
    來源:php.cn
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    最新問題
    為什麼第二節的第二段影片沒辦法觀看
    來自於 1970-01-01 08:00:00
    0
    0
    0
    第二網域怎麼用
    來自於 1970-01-01 08:00:00
    0
    0
    0
    二級菜單不生效呢
    來自於 1970-01-01 08:00:00
    0
    0
    0
    公眾號的二維碼怎麼產生?
    來自於 1970-01-01 08:00:00
    0
    0
    0
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板