当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP 数组学习排序全接触

PHP
php 多线程上下文中安全写文件实现代码
PHP类的使用 实例代码讲解
用php实现让页面只能被百度gogole蜘蛛访问的方法
php 学习笔记
PHP编程过程中需要了解的this,self,parent的区别
php 操作excel文件的方法小结
使用PHP获取网络文件的实现代码
PHP 巧用数组降低程序的时间复杂度
php下将XML转换为数组
php 文件上传代码(限制jpg文件)
php 无极分类(递归)实现代码
PHP 采集获取指定网址的内容
PHP 将图片按创建时间进行分类存储的实现代码
PHP 存储文本换行实现方法
PHP 批量更新网页内容实现代码
用PHP查询搜索引擎排名位置的代码
用php实现的获取网页中的图片并保存到本地的代码
php实现首页链接查询 友情链接检查的代码
处理php自动反斜杠的函数代码
php实现的遍历文件夹下所有文件,编辑删除

PHP 数组学习排序全接触


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 56 ::
收藏到网摘: n/a

PHP4函数手册 array里的算是看完咯, 明天在看看最新的手册。。。。 array_values($arr) array
返回数组所有元素
复制代码 代码如下:
each($arr) array
重数组$arr中返回一对 key/value也就是 下标/值
复制代码 代码如下:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => c);
$res = each($arr);
print_r($res); //结果为 array('0' => 'a', 'key' => 'a', 1 => 1, 'value' => 1)
//返回结果 0 和 key 都代表 下标 1 和 value 代表值
//没使用一次each数组内部指针就会向下移动一次, 如果已经是数组末端, 将返回false
$res = each($arr);
print_r($res); //结果就会变成 array('0' => 'b', 'key' => 'b', 1 => 2, 'value' => 2)
?>

list($val, .. , [$val]) void 无返回值
把数组中的值赋给一些变量$val
复制代码 代码如下:

<?php
$arr = array('颜色', '字母A', '字母B');
list($color, $a, $b) = $arr; //注意这里list的参数$val 位置是和数组中的位置对应, 重左到右
echo $color; //结果 '颜色'
echo $a; //结果 '字母A'
list($color, , $b) = $arr; //这样空一个
echo $color; //结果 '颜色'
echo $a; //结果 一样都没有, 因为就没给a赋值哦, 哪里也空出来咯
echo $b; //结果 '字母B'
//list each 一起用
$arr = array('颜色', '字母A', '字母B');
while(list($key, $val) = each($arr)) {
echo '下标:' . $key;
echo '----值:' . $val;
echo '<br>';
}
//输出结果为
//下标:0----值:颜色
//下标:1----值:字母A
//下标:2----值:字母B
?>

krsort($arr, [$type]) bool
对数组$arr按照其下标进行倒序排列
还有一个ksort(); 这个是按下标进行升序排列
$type 是排序方式
复制代码 代码如下:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
krsort($arr);
print_r($arr); //打印结果: array('c' => 3, 'b' => 2, 'a' => 1);
?>

range($go, $end, [$setup) array
这个有点不好解释
复制代码 代码如下:

<?php
$arr = range(1, 10);
print_r($arr); //结果array(1, 2, 3, 4, .., 10);
$arr = range(1, 10, 2); //这里指定第三个参数, 也就是步长
print_r($arr); //结果array(1, 3, 5, 7, 9);
$arr = range('a', 'z');
print_r($arr); //结果 array('a', 'b', 'c', ..., 'z');
?>

sort($arr);
将数组重a-z进行排序
复制代码 代码如下:
<?php
$arr = array("lemon","orange","banana","apple");
sort($arr);
print_r($arr); //结果array('apple', 'banana', 'lemon', 'orange');
//还有个z-a进行排序的函数rsort
?>

shuffle($arr) bool
将数组$arr进行乱排序, 也就是随机排序
复制代码 代码如下:

<?php
$arr = range(1, 10);
shuffle($arr);
print_r($arr); //结果是什么我也不知道, 因为是随机的
?>

usort($arr, $func) bool
使用你自己定义的函数对$arr进行排序$func是自定义函数
复制代码 代码如下:

<?php
$arr = array(1, 5, 8 ,2 ,0 ,3);
usort($arr, 'test');
function test($a, $b) {
return $a == $b ? 0 : $a < $b ? 1 : -1;
}
print_r($arr); //打印结果 Array ( [0] => 8 [1] => 5 [2] => 3 [3] => 2 [4] => 1 [5] => 0 )
// 这函数没弄懂哦。。 不知道参数$a , $b 代表的是什么? 看手册也没看懂, 如果这么简单的排序用ksort就行咯rsort
// 这样的函数还有两个 uksort,和uasort都没弄懂, 郁闷。。。
?>

总结一下
复制代码 代码如下:

<?php
array_values() //返回数组中所有元素
array_walk() //使用自定义函数遍历数组都一个单元
arsort(); //保留数组下标于值的关系进行倒序排列
asort() //保留数组下标于值的关系进行正序排列
compact() //将变量导入到数组中, 以变量名为下标, 值为值
extract() //将数组导入到变量, 下标为变量名, 值为值
count() //统计数组有多少个元素
current() //当前指针所指元素
next() //指针向下移动
prev() //指针向上移动
end() //指针移动到数组末尾
reset() //指针移动到数组开头
key() //返回当前指针所指元素的下标
each() //返回一对 key/value
list() //将数组导入到变量中
krsort() //按照下标进行倒序排列
ksort() //按照下标进行升序排列
range() //创建数组
sort() //按值重小到大排列
rsort() //按值重大到些排列
shuffle() //随机排列
usort() //......无语这个函数, Google去咯
?>