1)sort
定义和用法
sort() 函数对索引数组进行升序排序。

注释:本函数为数组中的单元授予新的键名。原有的键名将被删除。
如果成功则返回 TRUE,否则返回 FALSE。
提示:请利用 rsort() 函数对索引数组进行降序排序。
语法
sort(array,sortingtype);
参数描述
array必需。规定要进行排序的数组。
sortingtype
可选。规定如何比较数组的元素/项目。可能的值:
0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
1 = SORT_NUMERIC - 把每一项作为数字来处理。
2 = SORT_STRING - 把每一项作为字符串来处理。
3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行变动)。
4 = SORT_NATURAL - 把每一项作为字符串来处理,利用类似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
返回值:若成功则返回 TRUE,若失落败则返回 FALSE。
例:sort.php
<?php
$fruits = array(\"大众orange\"大众, \"大众banana\"大众, \"大众apple\公众);//定义一个数组
sort($fruits);//默认常规排序
foreach ($fruits as $key => $value) {//foreach 办法遍历数组
echo \"大众fruits[$key] = $value <br>\公众;//打印数组
}
$num = array(\"大众11\"大众, \"大众2\公众, \"大众1\"大众);//定义一个数组
sort($num);//按照数字排序
foreach ($num as $key => $value) {//foreach 办法遍历数组
echo \公众num[$key] = $value <br>\"大众;//打印数组
}
sort($num,SORT_STRING);//按照字符串排序
foreach ($num as $key => $value) {//foreach 办法遍历数组
echo \"大众num[$key] = $value <br>\公众;//打印数组
}
?>
结果:
注“11”排在“2”之前
2)asort与ksort
定义和用法
asort() 函数春联系关系数组按照键值进行升序排序。
提示:请利用 arsort() 函数春联系关系数组按照键值进行降序排序。
提示:请利用 ksort() 函数春联系关系数组按照键名进行升序排序。
语法
asort(array,sortingtype);
参数描述
array必需。规定要进行排序的数组。
sortingtype
可选。规定如何排列数组的元素/项目。可能的值:
0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)
1 = SORT_NUMERIC - 把每一项作为数字来处理
2 = SORT_STRING - 把每一项作为字符串来处理
3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行变动)
4 = SORT_NATURAL - 把每一项作为字符串来处理,利用类似 natsort() 的自然排序
5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写
解释
asort() 函数对数组进行排序并保持索引关系。紧张用于对那些单元顺序很主要的结合数组进行排序。
可选的第二个参数包含了附加的排序标识。
如果成功则返回 TRUE,否则返回 FALSE。
返回值:如果成功则返回 TRUE,如果失落败则返回 FALSE。
例:asort.php
<?php
$array = array(\公众a\"大众 => \公众y\公众, \"大众c\公众 => \"大众x\公众, \公众b\"大众 => \"大众z\"大众);//定义一个字符串数组
asort($array);//按照数组索引升序排序
foreach ($array as $key => $value) {//foreach遍历循环打印数组
echo \"大众array['$key'] = $value <br>\"大众;
}
ksort($array);//按照数组索引升序排序
foreach ($array as $key => $value) {//foreach遍历循环打印数组
echo \"大众array['$key'] = $value <br>\"大众;
}
?>
结果:
注:降序这函数前加个‘r’,例如rsort 、arsort 、krsort。
3)array_reverse
定义和用法
array_reverse() 函数以相反的元素顺序返回数组。
解释
array_reverse() 函数将原数组中的元素顺序翻转,创建新的数组并返回。
如果第二个参数指定为 true,则元素的键名保持不变,否则键名将丢失。
语法
array_reverse(array,preserve)
参数描述
array必需。规定数组。
preserve
可选。规定是否保留原始数组的键名。
可能的值:
true
false
返回值:返回反转后的数组。
例:array_reverse.php
<?php
$array = array(\"大众x\"大众, \"大众y\"大众, \"大众z\公众);//定义一个数组
$result = array_reverse($array);//将数组顺序相反排序
echo \"大众<pre>\公众;
print_r($result);//打印数组
$result = array_reverse($array, TRUE);//保留原来元素原来的索引,相反排序
print_r($result);
?>
结果:
2.自定义排序函数usort
1)usort
定义和用法
usort() 通过用户自定义的比较函数对数组进行排序。
语法
usort(array,myfunction);
参数描述
array必需。规定要进行排序的数组。
myfunction可选。定义可调用比较函数的字符串。如果第一个参数小于即是或大于第二个参数,那么比较函数必须返回一个小于即是或大于 0 的整数。
解释
usort() 函数利用用户自定义的函数对数组排序。
注释:如果两个元素比较结果相同,则它们在排序后的数组中的顺序未经定义。到 PHP 4.0.6 之前,用户自定义函数将保留这些元素的原有顺序。但是由于在 4.1.0 中引进了新的排序算法,结果将不是这样了,由于对此没有一个有效的办理方案。
注释:本函数为 array 中的元素授予新的键名。这会删除原有的键名。
返回值:若成功则返回 TRUE,若失落败则返回 FALSE。
2)cmp
函数cmp中返回值可以任意指定,只要担保返回值中包含0、正数、负数三种类型即可。
例:usort.php
<?php
function cmp($a,$b) { //创建一个cmp比较函数
if ($a == $b) //如果 变量$a = 变量$b
return 0; //返回值 为 0
else if($a > $b) //如果 变量$a > 变量$b
return -10;//返回值 为 -10
else //如果 变量$a < 变量$b
return 9; //返回值 为 9
}
$array = array(7,5,15,20,1); //定义一个数组
usort($array, 'cmp'); //按照从大到小排序
echo \"大众<pre>\公众;
print_r($array); //打印数组
echo \"大众</pre>\"大众;
?>
结果:
3.数组随机排序函数shuffle
定义和用法
shuffle() 函数把数组中的元素按随机顺序重新排列。
该函数为数组中的元素分配新的键名。已有键名将被删除。
语法
shuffle(array)
参数描述
array必需。规定要利用的数组。
返回值:若成功则返回 TRUE,若失落败则返回 FALSE。
例:shuffle.php
<?php
$array = array('a', 'c', 'b', 'd');//定义一个数组
shuffle($array);//随机天生一个数组
foreach($array as $key => $value) {//foreach办法遍历打印数组
echo \"大众array[$key] = $value <br>\公众;
}
?>
结果:
4.数组遍历函数array_walk
定义和用法
array_walk() 函数对数组中的每个元素运用用户自定义函数。在函数中,数组的键名和键值是参数。
注释:您可以通过把用户自定义函数中的第一个参数指定为引用:&$value,来改变数组元素的值。
提示:如需操作更深的数组(一个数组中包含另一个数组),请利用 array_walk_recursive() 函数。
语法
array_walk(array,myfunction,userdata...)
参数描述
array必需。规定数组。
myfunction必需。用户自定义函数的名称。
userdata,...可选。规定用户自定义函数的参数。您能够向此函数通报任意多参数。
解释
array_walk() 函数对数组中的每个元素运用回调函数。如果成功则返回 TRUE,否则返回 FALSE。
范例情形下 myfunction 接管两个参数。array 参数的值作为第一个,键名作为第二个。如果供应了可选参数 userdata ,将被作为第三个参数通报给回调函数。
如果 myfunction 函数须要的参数比给出的多,则每次 array_walk() 调用 myfunction 时都会产生一个 E_WARNING 级的缺点。这些警告可以通过在 array_walk() 调用前加上 PHP 的缺点操作符 @ 来抑制,或者用 error_reporting()。
注释:如果回调函数须要直接浸染于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。(拜会例子 3)
注释:将键名和 userdata 通报到 myfunction 中是 PHP 4.0 新增加的。
返回值:如果成功则返回 TRUE,否则返回 FALSE。
例:array_walk.php
<?php
$array = array(\"大众c\公众 => \"大众x\"大众,\"大众a\公众 => \"大众y\"大众,\公众b\"大众 => \公众z\公众);//定义一个字符串索引数组
function print_bold(&$value, $key, $prefix)//定义一个函数,包含三个形参
{
$value = \"大众$prefix[0] $value $prefix[1]\"大众;
echo \"大众array['$key'] = $value <br>\"大众;
}
function print_str($value, $key)//定义一个函数,包含两个形参
{
echo \公众array['$key'] = $value <br>\公众;
}
echo \公众格式化输出:<br>\"大众;
array_walk($array, 'print_str');//格式化输出
array_walk($array, 'print_bold', array('<b><i>','</i></b>'));//格式化输出
?>
结果:
5.数组判断函数
1)check.php
<?php
find_str('y');//调用函数find_str()
function find_str($x) { //定义一个函数 形参为$x
$array = array('x','y','z'); //定义一个数组
foreach($array as $key => $value) { //foreach办法遍历 循环查找数组
if($x == $value) { //$x = $value 是否与传入参数相等
echo \公众$value is in array.\"大众; //打印y is in array.
break; //返回
}
}
}
?>
结果:
2)in_array
定义和用法
in_array() 函数搜索数组中是否存在指定的值。
语法
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
参数描述
needle必需。规定要在数组搜索的值。
haystack必需。规定要搜索的数组。
strict可选。如果该参数设置为 TRUE,则 in_array() 函数检讨搜索的数据与数组的值的类型是否相同。
返回值:如果在数组中找到值则返回 TRUE,否则返回 FALSE。
例:in_array.php
<?php
find_str('y'); //调用函数find_str()
function find_str($x) { //定义一个函数 形参为$x
$array = array('x','y','z');//定义一个数组
if(in_array($x,$array)) { //检讨数组中是否存在 $x
echo \"大众$x is in array.\公众; //打印 y is in array.
}
}
?>
结果:
3)array_key_exists
定义和用法
array_key_exists() 函数检讨某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
提示:请记住,如果您指天命组的时候省略了键名,将会天生从 0 开始并且每个键值对应以 1 递增的整数键名。
语法
array_key_exists(key,array)
参数描述
key必需。规定键名。
array必需。规定数组。
返回值:如果键名存在则返回 TRUE,如果键名不存在则返回 FALSE。
例:array_key_exists.php
<?php
$array = array('x' => null, 'y' => 'a', 'z' => 'b');//定义一个数组
var_dump($array );//打印数组
echo array_key_exists('x', $array);// 索引对应为空,返回TRUE
echo array_key_exists('y', $array);// 索引对应为键名存在,返回TRUE
?>
结果:
4)array_search
定义和用法
array_search() 函数在数组中搜索某个键值,并返回对应的键名。
详细解释
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
在 PHP 4.2.0 之前,函数在失落败时返回 null 而不是 false。
如果第三个参数 strict 被指定为 true,则只有在数据类型和值都同等时才返回相应元素的键名。
语法
array_search(value,array,strict)
参数描述
value必需。规定须要搜素的键值。
array必需。规定被搜索的数组。
strict
可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都同等的元素。可能的值:
true
false - 默认
如果设置为 true,则在数组中检讨给定值的类型,数字 5 和字符串 5 是不同的
返回值:
如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。
如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。
例:array_search.php
<?php
$array = array('a' => 'x', 'b' => 'y', 'c' => 'z');//定义一个字符串索引数组
var_dump($array);//打印数组
echo array_search('x', $array);//查找键值有存在,返回键名
echo array_search('a', $array); //查找键值有存在,不返回
?>
结果: