本文内容:PHP二维数组排序,PHP数组排序总结。
php数组排序是PHP学习中最基础也是最重要的一部分。
1、常规数组的排序
常规数组是指数组各元素均为字符串或数字,这与这样的数组,我们可以采用sort()函数对他进行排序。
示例:
<?php
$people=array('name','sex','nation','birth');
echo "---原数组---<br />";
foreach ($people as $mychrs)
echo $mychrs." ";
sort($people);
echo "<br />---sort()函数排序后---<br />";
foreach ($people as $mychrs)
echo $mychrs." ";
?>
输出:
---原数组---
name sex nation birth
---sort()函数排序后---
birth name nation sex
Sort()函数还具有第二参数,用来说明升序的规则是用来比较数字还是字符串的。
示例:
<?php
echo "---按数字升序排序---<br />";
$num2=array('30','5',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs." ";
echo "<br />---按字符升序排序---<br />";
$num3=array('30','5');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
echo $mychrs." ";
?>
输出:
---按数字升序排序---
5 30
---按字符升序排序---
30 5
这里关键就是SORT_NUMERIC和SORT_STRING参数的使用
sort()函数是对数组做升序排列,同样还有降序排列函数rsort(),他的使用方法与sort()函数一样,这里就不在说了。
2、数组倒序排序
也就是说把原数组倒序存放,这里我们用到array_reverse()函数。
示例:
<?php
$ut=array('uncletoo','php','mysql','oracle');
echo "--原数组--<br />";
foreach ($ut as $mychrs)
echo $mychrs." ";
$ut=array_reverse($ut);
echo "<br />--array_reverse倒序--<br />";
foreach ($ut as $mychrs)
echo $mychrs." ";
?>
输出:
--原数组--
uncletoo php mysql oracle
--array_reverse倒序--
oracle mysql php uncletoo
3、数组随机排序
PHP中使用shuffle()函数将数组元素进行随机的重新排序
示例
<?php
$ut=array('uncletoo','php','mysql','oracle');
shuffle($ut);
foreach ($ut as $mychrs)
echo $mychrs." ";
?>
刷新浏览器,每次输出的排序都不一样。
4、有键值数组的排序
对于常规数组我们用sort()和rsort()函数进行排序,那么如果数组中有键值,我们就要用其他函数了。先看示例:
<?php
$peoples=array('name'=>'张三','sex'=>'男','age'=>'15','site'=>'www.jbxue.com');
echo "--原数组--<br />";
foreach ($peoples as $mychrs)
echo $mychrs." ";
echo "<br />--按元素值升序排列--<br />";
asort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";
echo "<br />--按关键字升序排列--<br />";
ksort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs." ";
?>
输出:
--原数组--
张三 男 15 www.jbxue.com
--按元素值升序排列--
15 www.jbxue.com 男 张三
--按关键字升序排列--
15 张三 男 www.jbxue.com
这里,用到了asort()和ksort()函数,分别是对元素和键值做升序排列,对应的,他们的降序排列分别是arsort()和krsort()函数,他们的用法是一样的。
以上简单介绍了PHP数组的几种排序函数及其用法。