PHP 數(shù)組學習排序全接觸第2/2頁
更新時間:2009年08月07日 00:52:34 作者:
PHP4函數(shù)手冊 array里的算是看完咯, 明天在看看最新的手冊。。。。
each($arr) array
重數(shù)組$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數(shù)組內(nèi)部指針就會向下移動一次, 如果已經(jīng)是數(shù)組末端, 將返回false
$res = each($arr);
print_r($res); //結果就會變成 array('0' => 'b', 'key' => 'b', 1 => 2, 'value' => 2)
?>
$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數(shù)組內(nèi)部指針就會向下移動一次, 如果已經(jīng)是數(shù)組末端, 將返回false
$res = each($arr);
print_r($res); //結果就會變成 array('0' => 'b', 'key' => 'b', 1 => 2, 'value' => 2)
?>
list($val, .. , [$val]) void 無返回值
把數(shù)組中的值賦給一些變量$val
復制代碼 代碼如下:
<?php
$arr = array('顏色', '字母A', '字母B');
list($color, $a, $b) = $arr; //注意這里list的參數(shù)$val 位置是和數(shù)組中的位置對應, 重左到右
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
對數(shù)組$arr按照其下標進行倒序排列
還有一個ksort(); 這個是按下標進行升序排列
$type 是排序方式
復制代碼 代碼如下:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3);
krsort($arr);
print_r($arr); //打印結果: array('c' => 3, 'b' => 2, 'a' => 1);
?>
$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); //這里指定第三個參數(shù), 也就是步長
print_r($arr); //結果array(1, 3, 5, 7, 9);
$arr = range('a', 'z');
print_r($arr); //結果 array('a', 'b', 'c', ..., 'z');
?>
sort($arr);
將數(shù)組重a-z進行排序
復制代碼 代碼如下:
<?php
$arr = array("lemon","orange","banana","apple");
sort($arr);
print_r($arr); //結果array('apple', 'banana', 'lemon', 'orange');
//還有個z-a進行排序的函數(shù)rsort
?>
$arr = array("lemon","orange","banana","apple");
sort($arr);
print_r($arr); //結果array('apple', 'banana', 'lemon', 'orange');
//還有個z-a進行排序的函數(shù)rsort
?>
shuffle($arr) bool
將數(shù)組$arr進行亂排序, 也就是隨機排序
復制代碼 代碼如下:
<?php
$arr = range(1, 10);
shuffle($arr);
print_r($arr); //結果是什么我也不知道, 因為是隨機的
?>
usort($arr, $func) bool
使用你自己定義的函數(shù)對$arr進行排序$func是自定義函數(shù)
復制代碼 代碼如下:
<?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 )
// 這函數(shù)沒弄懂哦。。 不知道參數(shù)$a , $b 代表的是什么? 看手冊也沒看懂, 如果這么簡單的排序用ksort就行咯rsort
// 這樣的函數(shù)還有兩個 uksort,和uasort都沒弄懂, 郁悶。。。
?>
總結一下
復制代碼 代碼如下:
<?php
array_values() //返回數(shù)組中所有元素
array_walk() //使用自定義函數(shù)遍歷數(shù)組都一個單元
arsort(); //保留數(shù)組下標于值的關系進行倒序排列
asort() //保留數(shù)組下標于值的關系進行正序排列
compact() //將變量導入到數(shù)組中, 以變量名為下標, 值為值
extract() //將數(shù)組導入到變量, 下標為變量名, 值為值
count() //統(tǒng)計數(shù)組有多少個元素
current() //當前指針所指元素
next() //指針向下移動
prev() //指針向上移動
end() //指針移動到數(shù)組末尾
reset() //指針移動到數(shù)組開頭
key() //返回當前指針所指元素的下標
each() //返回一對 key/value
list() //將數(shù)組導入到變量中
krsort() //按照下標進行倒序排列
ksort() //按照下標進行升序排列
range() //創(chuàng)建數(shù)組
sort() //按值重小到大排列
rsort() //按值重大到些排列
shuffle() //隨機排列
usort() //......無語這個函數(shù), Google去咯
?>
相關文章
php include,include_once,require,require_once
其實PHP包含文件的這四個函數(shù),很多人還是沒完全明白的,雖然用的時候多,但是具體某些地方該怎么用,用那一個,我就獻丑一把.2008-09-09