1796浏覽量

PHP數組學習排序全接觸

來源: 時間:2013-11-01

PHP4函數手冊 array裏的算是看完咯, 明天在看看最新的手冊。。。。

array_values($arr) array
返回數組所有元素
複制代碼 - PHP100.com $arr = array("a", "b", "c");
$arr = array_flip($arr); //反轉數組的下(xià)标和值現在的$arr = array(0, 1, 2);
$arr = array_values($arr); //返回數組$arr中(zhōng)的所有元素
print_r($arr); //結果: array(0, 1, 2);
?>


array_walk($arr, $func, [$data]) bool
使用用戶自定義的函數遍曆所有的元素,返回true/false
注意:此函數隻處理數組的第一(yī)維
$func是一(yī)個函數名
默認會傳入兩個參數 第一(yī)個 $arr的值, 第二個$arr的下(xià)标, 一(yī)對一(yī)對的傳哦
複制代碼 - PHP100.com $arr = array('a', 'b', 'c');
array_walk($arr, 'test'); //這裏第二個參數test就是函數名
function test(&$val, $key) //這裏第一(yī)個參數加上引用, 那麽修改$val就等于修改$arr中(zhōng)的元素
{
$val = 'x_' . $val; //這裏給他加一(yī)個前綴
}
print_r($arr); //輸出結果 array('x_a', 'x_b', 'x_c');
//這裏如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3)); 打印結果将是 array('x_a', 'x_b', 'x_c', 'x_Array');
?>


現在傳入第三那個參數$data, 如果有傳入第三個參數,那麽第三個參數将傳給第二個參數定義的函數當中(zhōng)的第三個參數
複制代碼 - PHP100.com array_walk($arr, 'test', 'x_');
function test(&$val, $key, $prefix)
{
$val = $prefix . $val; //其實這裏的$prefix就是上面的x_
}
print_r($arr); //輸出結果和上面一(yī)樣 array('x_a', 'x_b', 'x_c');
?>


arsort($arr) bool
對數組$arr進行倒序排列并保留下(xià)标和值的關系,如果排序成功返回true 否則返回 false
此函數隻處理數組的第一(yī)維
複制代碼 - PHP100.com $arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
arsort($arr);
print_r($arr); //打印結果: array('c' => 'c', 'b' => 'b', 'a' => 'a'); 如果有數字那麽數字會在字符前面
?>


asort($arr) bool
對數組$arr進行正序排列也就是a-z這樣排列, 返回值和上面一(yī)樣
此函數也保留下(xià)标和值的關系
複制代碼 - PHP100.com $arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
asort($arr);
print_r($arr); //結果沒變, 就是原那數組
$arr = array('c' => 'c', 'b' => 'b', 'a' => 'a');
asort($arr);
print_r($arr); //結果:array('a' => 'a', 'b' => 'b', 'c' => 'c');
?>


compact($varname, ...., $varname) array
接受n個$varname并将$varname當做下(xià)标$varname的值當做值創建一(yī)個數組$varname可以爲數組
解釋不清楚, 看例子
複制代碼 - PHP100.com $a = "變量a";
$b = "變量b";
$arr = compact('a', 'b'); //這裏傳入 a b 分(fēn)别爲上面定義的變量名稱
print_r($arr); //打印結果爲 array('a' => '變量a', 'b' => '變量b');
//還可以把變量名稱當做數組傳入
$vars = array('a', 'b');
$arr = compact($vars);
print_r($arr); //結果和上面一(yī)樣, 其實這個函數就是做extract的相反操作
?>


extract($arr, $type, $prefix) int
将數組$arr的下(xià)标當做變量名, 值當做變量的值
$arr 目标數組
$type 這個是遇過遇到相同下(xià)标使用什麽方式處理, 值是PHP已經定義了的常量
EXTR_OVERWRITE 如果相同, 那麽就覆蓋前面的那個變量, 默認就是這個
EXTR_SKIP 如果相同, 不覆蓋前面那個變量
EXTR_PREFIX_SAME 如果相同, 那麽使用第三個參數$prefix加到變量名前
EXTR_PREFIX_ALL 把所有變量名稱都加上$prefix當做前綴
注意在$type爲EXTR_PREFIX_SAME或EXTR_PREFIX_ALL時才需要傳入參數$prefix, 不然傳了也沒用。。。
例子
複制代碼 - PHP100.com $arr = array('a' => '變量a', 'b' => '變量b');
extract($arr, EXTR_OVERWRITE); //如果有相同,那麽覆蓋
echo $a; //輸出結果将是 '變量a'
echo $b; //結果: '變量b'
$arr = array('a' => '變量a', 'b' => '變量b', 'a' => '第二個變量a'); //這裏有兩個元素下(xià)标都爲a
extract($arr);
echo $a; //輸出結果是: '第二個變量a' 很明顯已經覆蓋了 '變量a' 因爲默認第二個參數是 EXTR_OVERWRITE
?>


count($arr) int
統計數組中(zhōng)的元素的數目
複制代碼 - PHP100.com $arr = array('a', 'b');
echo count($arr); //很明顯結果爲2
?>


current($arr) mixed
返回數組中(zhōng)當前指針所指的元素,此函數别名 pos
複制代碼 - PHP100.com $arr = array('a', 'b', 'c');
echo current($arr); //結果爲 'a'
echo next($arr); //指針向下(xià)一(yī)個移動,所以現在指針所指的是b 輸出結果當然爲 'b'
echo current($arr); //結果又(yòu)是b 因爲當前指針就在b這哦
echo end($arr) //指針移動到數組最後, 并返回結果, 所以結果爲c
echo prev($arr); //指針向上一(yī)個移動, 結果b
echo key($arr); //返回指針所指元素的下(xià)标 因爲上面指針到了b那麽所有 結果爲1 因爲b的下(xià)标就是1

聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層