前言:
此刻咱们对“php参数数组”都比较关切,同学们都想要知道一些“php参数数组”的相关资讯。那么小编也在网上搜集了一些关于“php参数数组””的相关内容,希望兄弟们能喜欢,大家一起来学习一下吧!1.数组排序函数
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); //查找键值有存在,不返回
?>
结果:
标签: #php参数数组