搜尋
首頁php教程php手册PHP 数组学习排序全接触第1/2页

PHP 数组学习排序全接触第1/2页

Jun 13, 2016 pm 12:22 PM
arrarrayphp程式碼元素複製學習排序陣列返回

array_values($arr) array
返回数组所有元素

复制代码 代码如下:


$arr = array("a", "b", "c");
$arr = array_flip($arr); //反转数组的下标和值现在的$arr = array(0, 1, 2);
$arr = array_values($arr); //返回数组$arr中的所有元素
print_r($arr); //结果: array(0, 1, 2);
?>



array_walk($arr, $func, [$data]) bool
使用用户自定义的函数遍历所有的元素,返回true/false
注意:此函数只处理数组的第一维
$func是一个函数名
默认会传入两个参数 第一个 $arr的值, 第二个$arr的下标, 一对一对的传哦

复制代码 代码如下:

$arr = array('a', 'b', 'c');
array_walk($arr, 'test'); //这里第二个参数test就是函数名
function test(&$val, $key) //这里第一个参数加上引用, 那么修改$val就等于修改$arr中的元素
{
$val = 'x_' . $val; //这里给他加一个前缀
}
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, 如果有传入第三个参数,那么第三个参数将传给第二个参数定义的函数当中的第三个参数

复制代码 代码如下:


array_walk($arr, 'test', 'x_');
function test(&$val, $key, $prefix)
{
$val = $prefix . $val; //其实这里的$prefix就是上面的x_
}
print_r($arr); //输出结果和上面一样 array('x_a', 'x_b', 'x_c');
?>



arsort($arr) bool
对数组$arr进行倒序排列并保留下标和值的关系,如果排序成功返回true 否则返回 false
此函数只处理数组的第一维

复制代码 代码如下:


$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这样排列, 返回值和上面一样
此函数也保留下标和值的关系

复制代码 代码如下:


$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当做下标$varname的值当做值创建一个数组$varname可以为数组
解释不清楚, 看例子

复制代码 代码如下:


$a = "变量a";
$b = "变量b";
$arr = compact('a', 'b'); //这里传入 a b 分别为上面定义的变量名称
print_r($arr); //打印结果为 array('a' => '变量a', 'b' => '变量b');
//还可以把变量名称当做数组传入
$vars = array('a', 'b');
$arr = compact($vars);
print_r($arr); //结果和上面一样, 其实这个函数就是做extract的相反操作
?>


extract($arr, $type, $prefix) int
将数组$arr的下标当做变量名, 值当做变量的值
$arr 目标数组
$type 这个是遇过遇到相同下标使用什么方式处理, 值是PHP已经定义了的常量
EXTR_OVERWRITE 如果相同, 那么就覆盖前面的那个变量, 默认就是这个
EXTR_SKIP 如果相同, 不覆盖前面那个变量
EXTR_PREFIX_SAME 如果相同, 那么使用第三个参数$prefix加到变量名前
EXTR_PREFIX_ALL 把所有变量名称都加上$prefix当做前缀
注意在$type为EXTR_PREFIX_SAME或EXTR_PREFIX_ALL时才需要传入参数$prefix, 不然传了也没用。。。
例子

复制代码 代码如下:


$arr = array('a' => '变量a', 'b' => '变量b');
extract($arr, EXTR_OVERWRITE); //如果有相同,那么覆盖
echo $a; //输出结果将是 '变量a'
echo $b; //结果: '变量b'
$arr = array('a' => '变量a', 'b' => '变量b', 'a' => '第二个变量a'); //这里有两个元素下标都为a
extract($arr);
echo $a; //输出结果是: '第二个变量a' 很明显已经覆盖了 '变量a' 因为默认第二个参数是 EXTR_OVERWRITE
?>



count($arr) int
统计数组中的元素的数目

复制代码 代码如下:


$arr = array('a', 'b');
echo count($arr); //很明显结果为2
?>


current($arr) mixed
返回数组中当前指针所指的元素,此函数别名 pos

复制代码 代码如下:


$arr = array('a', 'b', 'c');
echo current($arr); //结果为 'a'
echo next($arr); //指针向下一个移动,所以现在指针所指的是b 输出结果当然为 'b'
echo current($arr); //结果又是b 因为当前指针就在b这哦
echo end($arr) //指针移动到数组最后, 并返回结果, 所以结果为c
echo prev($arr); //指针向上一个移动, 结果b
echo key($arr); //返回指针所指元素的下标 因为上面指针到了b那么所有 结果为1 因为b的下标就是1
echo reset($arr); //重置指针都数组开头 结果a
?>


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),