首页 » PHP教程 » php数组附加技巧_PHP 一些重要的数组操作函数

php数组附加技巧_PHP 一些重要的数组操作函数

访客 2024-11-30 0

扫一扫用手机浏览

文章目录 [+]

1)sort

定义和用法

php数组附加技巧_PHP 一些重要的数组操作函数

sort() 函数对索引数组进行升序排序。

php数组附加技巧_PHP 一些重要的数组操作函数
(图片来自网络侵删)

注释:本函数为数组中的单元授予新的键名。
原有的键名将被删除。

如果成功则返回 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); //查找键值有存在,不返回

?>

结果:

标签:

相关文章

Java代码虚拟化保护技术与应用前景

软件应用的需求日益增长,软件开发过程中对代码的保护成为了一个重要议题。Java作为一种广泛应用于企业级应用的编程语言,其代码虚拟化...

PHP教程 2025-03-02 阅读1 评论0

CAD插件错误代码与应对步骤

CAD(计算机辅助设计)软件在工程设计领域得到了广泛应用。CAD插件作为提升设计效率的重要工具,在提高设计师工作效率的也带来了一定...

PHP教程 2025-03-02 阅读1 评论0

上古卷轴代码规则大全游戏背后的编程奥秘

《上古卷轴》作为一款深受玩家喜爱的角色扮演游戏,自问世以来便以其丰富的世界观、独特的游戏体验和深厚的文化底蕴吸引了无数玩家。在这款...

PHP教程 2025-03-02 阅读1 评论0