PHP 数组处理的函数
2016-07-20 00:00
337 查看
array_unshift ——在数组开头插入一个或多个单元
int array_unshift( array &$array , mixed $var [, mixed $...] )
将传入的单元插入到array数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
返回array数组新的单元数目。
array_shift ——将数组开头的单元移除出数组
mixed array_shift( array &$array )
将array的第一个单元移除并作为结果返回,将array的长度减一并将所有其他单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
返回移除的值,如果array为空或不是一个数组则返回NULL。
数组相加:$a= $b +$c
array_push ——将一个或多个单元压入数组的末尾(入栈)
int array_push( array &$array , mixed $var [, mixed $...])
将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。
返回的是新数组的元素个数。
array_pop ——将数组最后一个单元弹出(出栈)
mixed array_pop( array &$array )
弹出并返回array数组的最后一个单元,并将数组array的长度减一。
返回数组的最后一个值。 如果array为空(或不是数组),将返回NULL。
array_
1
1
1
implode ——将一个一维数组的值转化为字符串
string implode( string $glue , array $pieces)
string implode( array $pieces)
用glue将一维数组的值连接为一个字符串
返回一个字符串,其内容为由glue分割开的数组的值。
explode ——使用一个字符串分割另一个字符串
array explode( string $delimiter , string $string [, int $limit ])
limit参数
此函数返回有字符串组成的数组,每个元素都是string的一个子串,它们被字符串delimiter作为边界点分割出来
asort ——对数组进行排序并保持索引关系
bool asort( array &$array [, int $sort_flags = SORT_REGULAR)
本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
成功时返回true,失败返回false。
sort ——对数组排序
bool sort( array &$array [, int $sort_flags = SORT_REGULAR)
sort_flags参数
成功true,失败false。
全部的排序函数之间的对比
array_merge ——合并一个或多个数组
array array_merge ( array
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
array_keys ——返回数组中所有的键名
array array_keys ( array
array_keys() 返回
如果指定了可选参数
array_value ——返回数组中所有的值
array array_values ( array
array_values() 返回
array_rand ——从数组中随机取出一个或多个单元
mixed array_rand ( array
从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。
如果你只取出一个, array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
in_array ——检查数组中是否存在某个值
bool in_array ( mixed
在
如果找到
array_reverve ——返回一个单元顺序相反的数组
array array_reverse ( array
array_reverse() 接受数组
int array_unshift( array &$array , mixed $var [, mixed $...] )
将传入的单元插入到array数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。
返回array数组新的单元数目。
<?php $queue = array("orange", "banana"); array_unshift($queue, "apple", "raspberry"); print_r($queue); ?> 以上例程会输出: Array ( [0] => apple [1] => raspberry [2] => orange [3] => banana )
array_shift ——将数组开头的单元移除出数组
mixed array_shift( array &$array )
将array的第一个单元移除并作为结果返回,将array的长度减一并将所有其他单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
返回移除的值,如果array为空或不是一个数组则返回NULL。
数组相加:$a= $b +$c
<?php $someArray=array(224=>'someword1', 228=>'someword2', 102=>'someword3', 544=>'someword3',95=>'someword4'); $someArray=array(100=>'Test Element 1 ',255=>'Test Element 2')+$someArray; ?> now the array looks as follows: array( 100=>'Test Element 1 ', 255=>'Test Element 2' 224=>'someword1', 228=>'someword2', 102=>'someword3', 544=>'someword3', 95=>'someword4' );
<?php $array1 = array(0 => 'zero_a', 2 => 'two_a', 3 => 'three_a'); $array2 = array(1 => 'one_b', 3 => 'three_b', 4 => 'four_b'); $result = $array1 + $array2; var_dump($result); ?> The keys from the first array will be preserved. If an array key exists in both arrays, then the element from the first array will be used and the matching key's element from the second array will be ignored. array(5) { [0]=> string(6) "zero_a" [2]=> string(5) "two_a" [3]=> string(7) "three_a" [1]=> string(5) "one_b" [4]=> string(6) "four_b" }
array_push ——将一个或多个单元压入数组的末尾(入栈)
int array_push( array &$array , mixed $var [, mixed $...])
将array当成一个栈,并将传入的变量压入array的末尾。array的长度将根据入栈变量的数目增加。
返回的是新数组的元素个数。
<?php $stack = array("orange", "banana"); array_push($stack, "apple", "raspberry"); print_r($stack); ?> 以上例程会输出: Array ( [0] => orange [1] => banana [2] => apple [3] => raspberry )
array_pop ——将数组最后一个单元弹出(出栈)
mixed array_pop( array &$array )
弹出并返回array数组的最后一个单元,并将数组array的长度减一。
返回数组的最后一个值。 如果array为空(或不是数组),将返回NULL。
array_
1
1
1
implode ——将一个一维数组的值转化为字符串
string implode( string $glue , array $pieces)
string implode( array $pieces)
用glue将一维数组的值连接为一个字符串
返回一个字符串,其内容为由glue分割开的数组的值。
<?php $array = array('lastname', 'email', 'phone'); $comma_separated = implode(",", $array); echo $comma_separated; // lastname,email,phone // Empty string when using an empty array: var_dump(implode('hello', array())); // string(0) "" ?>
explode ——使用一个字符串分割另一个字符串
array explode( string $delimiter , string $string [, int $limit ])
limit参数
正数 | 返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分 |
0 | 会被当做1 |
负数 | 返回除了最后的-limit个元素外的所有元素。 |
asort ——对数组进行排序并保持索引关系
bool asort( array &$array [, int $sort_flags = SORT_REGULAR)
本函数对数组进行排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。
成功时返回true,失败返回false。
sort ——对数组排序
bool sort( array &$array [, int $sort_flags = SORT_REGULAR)
sort_flags参数
SORT_REGULAR | 正常比较单元(不改变类型) |
SORT_NUMERIC | 单元被作为数字来比较 |
SORT_STIRNG | 单元被作为字符串来比较 |
SORT_LOCALE_STRING | 根据当前的区域(locale)设置来把单元当做字符串比较 |
SORT_NATURAL | 对每个单元以“自然的顺序”对字符串进行排序 |
SORT_FLAG_CASE | 能够与SORT_STRING或SORT_NAUTRAL合并,不区分大小写。 |
<?php $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); foreach ($fruits as $key => $val) { echo "fruits[" . $key . "] = " . $val . "\n"; } ?> 以上例程会输出: fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange
全部的排序函数之间的对比
函数名 | 依据什么排序 | 是否维持键名 | 排序的顺序 | 相关的函数 |
asort() | value | yes | low to high | arsort |
arsort | value | yes | high to low | asort |
krsort | key | yes | high to low | ksort |
ksort | key | yes | low to high | arsort |
natcasesort | value | yes | natural,case insensitive | natsort |
natsort | value | yes | natural | natcasesort |
rsort | value | no | high to low | sort |
shuffle | value | no | random | array_rand |
sort | value | no | low to high | rsort |
uasort | value | yes | user defined | uksort |
uksort | key | yes | user defined | uasort |
usort | value | no | user defined | uasort |
array array_merge ( array
$array1[, array
$...] )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
<?php $array1 = array(); $array2 = array(1 => "data"); $result = array_merge($array1, $array2); ?> 别忘了数字键名将会被重新编号! Array ( [0] => data )
array_keys ——返回数组中所有的键名
array array_keys ( array
$input[, mixed
$search_value=
NULL[, bool
$strict= false ]] )
array_keys() 返回
input数组中的数字或者字符串的键名。
如果指定了可选参数
search_value,则只返回该值的键名。否则
input数组中的所有键名都会被返回。
<?php $array = array(0 => 100, "color" => "red"); print_r(array_keys($array)); $array = array("blue", "red", "green", "blue", "blue"); print_r(array_keys($array, "blue")); $array = array("color" => array("blue", "red", "green"), "size" => array("small", "medium", "large")); print_r(array_keys($array)); ?> 以上例程会输出: Array ( [0] => 0 [1] => color ) Array ( [0] => 0 [1] => 3 [2] => 4 ) Array ( [0] => color [1] => size )
array_value ——返回数组中所有的值
array array_values ( array
$input)
array_values() 返回
input数组中所有的值并给其建立数字索引。
<?php $array = array("size" => "XL", "color" => "gold"); print_r(array_values($array)); ?> 以上例程会输出: Array ( [0] => XL [1] => gold )
array_rand ——从数组中随机取出一个或多个单元
mixed array_rand ( array
$input[, int
$num_req= 1 ] )
从数组中取出一个或多个随机的单元,并返回随机条目的一个或多个键。
如果你只取出一个, array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
<?php $input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); $rand_keys = array_rand($input, 2); echo $input[$rand_keys[0]] . "\n"; echo $input[$rand_keys[1]] . "\n"; ?>
in_array ——检查数组中是否存在某个值
bool in_array ( mixed
$needle, array
$haystack[, bool
$strict=
FALSE] )
在
haystack中搜索
needle,如果没有设置
strict则使用宽松的比较。
如果找到
needle则返回
TRUE,否则返回
FALSE。
<?php $os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Got Irix"; } if (in_array("mac", $os)) { echo "Got mac"; } ?>
array_reverve ——返回一个单元顺序相反的数组
array array_reverse ( array
$array[, bool
$preserve_keys= false ] )
array_reverse() 接受数组
array作为输入并返回一个单元为相反顺序的新数组。
<?php $input = array("php", 4.0, array("green", "red")); $result = array_reverse($input); $result_keyed = array_reverse($input, true); ?> 这将使 $result 和 $result_keyed 具有相同的单元,但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为: Array ( [0] => Array ( [0] => green [1] => red ) [1] => 4 [2] => php ) Array ( [2] => Array ( [0] => green [1] => red ) [1] => 4 [0] => php )
相关文章推荐
- PHP 字符串处理的函数
- PHP5 中魔术方法函数
- phpStrom&webStorm证书码
- PHP 中 implode() explode() 解析
- Yii2安装
- 【PHP面向对象(OOP)编程入门教程】9.封装性(var与public,protected,private的关系)
- PHP+ExtJS 文件上传示例
- PHP中的正则
- 解决ThinkPHP 3.2.3 引入后台模板访问不成功
- ThinkPHP 3.2.3 后台模板引入
- WebStorm, PhpStorm破解
- 在ubuntu下运行的简单php脚本【生猴子】
- yii2.0验证码不能随网页一起刷新/出现site/captcha的错误
- laravel 怎么部署到万网的虚拟主机上?
- 修改wampserver的www目录及phpMyadmin问题解决
- windows版的php如何开启openssl
- php使用Mailer实现发送邮件
- 如何选择PHP框架?
- php正则与入门正则搭配
- PHP 学习笔记 账号登录系统