欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【php基础之数组的合并、拆分、区别取值函数集】,下面是详细的分享!
php基础之数组的合并、拆分、区别取值函数集
PHP数组的合并、拆分、区别取值函数集
都说PHP的数组功能很强大、只有真正用于项目工作当中才能够感受得到,至少我认为是,现在已慢慢的发觉其中的奥秘了……
合并数组有三个函数:
1.array_combine()
携带两个参数数组,参数数组一的值作新数组的键,参数数组二的值作新数组的值。很简单。
例子:
| <?php $a=array('green', 'red', 'yellow'); $b=array('avocado', 'apple', 'banana'); $c=array_combine($a, $b); print_r($c); ?> |
上例将输出:
| Array ( [green]=> avocado [red]=> apple [yellow]=> banana ) |
2.array_merge()
携带两个参数数组,简单的将数组二追加到数组一的后面构成新数组。
例子:
| <?php $array1=array("color"=> "red", 2, 4); $array2=array("a", "b", "color"=> "green", "shape"=> "trapezoid", 4); $result=array_merge($array1, $array2); print_r($result); ?> |
上例将输出:
| Array ( [color]=> green [0]=> 2 [1]=> 4 [2]=> a [3]=> b [shape]=> trapezoid [4]=> 4 ) |
3.array_merge_recursive()
与上面函数雷同,唯一的区别是在追加时发现要添加的键已存在时,array_merge()的处理方式是覆盖前面的键值,array_merge_recursive()的处理方式是重构子数组,将重复的键的值组成一个新的数值数组。
例子:
| <?php $ar1=array("color"=> array("favorite"=> "red"), 5); $ar2=array(10, "color"=> array("favorite"=> "green", "blue")); $result=array_merge_recursive($ar1, $ar2); ?> |
上例将输出 $result:
| Array ( [color]=> Array ( [favorite]=> Array ( [0]=> red [1]=> green ) [0]=> blue ) [0]=> 5 [1]=> 10 ) |
拆分数组有两个函数:
1.array_slice()
携带三个参数,参数一为目标数组,参数二为offset,参数三为length。作用为,从目标数组中取出从offset开始长度为length的子数组。
如果offset为正数,则开始位置从数组开头查offset处,如果offset为负数开始位置从距数组末尾查offset处。如果length为正数,则毫无疑问取出的子数组元素个数为length,如果length为负数,则子数组从offset开始到距数组开头count(目标数组)-|length|处结束。特殊地,如果length为空,则结束位置在数组结尾。
例子:
| <?php $input=array("a", "b", "c", "d", "e"); $output=array_slice($input, 2); // returns "c", "d", and "e" $output=array_slice($input, -2, 1); // returns "d" $output=array_slice($input, 0, 3); // returns "a", "b", and "c" // note the differences in the array keys print_r(array_slice($input, 2, -1)); print_r(array_slice($input, 2, -1, true)); ?> |
上例将输出:
| Array ( [0]=> c [1]=> d ) Array ( [2]=> c [3]=> d ) |
$input=array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")
$input=array("red", "green", "blue", "yellow");
array_splice($input, 1, -1);
// $input is now array("red", "yellow")
$input=array("red", "green", "blue", "yellow");
array_splice($input, 1, count($input), "orange");
// $input is now array("red", "orange")
$input=array("red", "green", "blue", "yellow");
array_splice($input, -1, 1, array("black", "maroon"));
// $input is now array("red", "green",
// "blue", "black", "maroon")
$input=array("red", "green", "blue", "yellow");
array_splice($input, 3, 0, "purple");
// $input is now array("red", "green",
// "blue", "purple", "yellow");
?>
区别取值函数有四个:
1.array_intersect()
携带参数不定,均为数组,返回所有数组中公共元素的值组成的数组,数组的键由所在第一个数组的键给出。
例子:
| <?php $array1=array("a"=> "green", "red", "blue"); $array2=array("b"=> "green", "yellow", "red"); $result=array_intersect($array1, $array2); ?> |
上例将输出:
| Array ( [a]=> green [0]=> red ) |
2.array_intersect_assoc()
在前一个函数的基础上,返回所有数组中键、值均相同的键值对。
例子:
| <?php $array1=array("a"=> "green", "b"=> "brown", "c"=> "blue", "red"); $array2=array("a"=> "green", "yellow", "red"); $result_array=array_intersect_assoc($array1, $array2); ?> |
上例将输出:
| Array ( [a]=> green ) |
3.array_diff()
携带多个数组,返回第一个数组中有的而后面的数组中没有的所有的值组成的新数组,对应键取自第一个数组。
例子:
| <?php $array1=array("a"=> "green", "red", "blue", "red"); $array2=array("b"=> "green", "yellow", "red"); $result=array_diff($array1, $array2); print_r($result); ?> |
上例将输出:
| Array ( [1]=> blue ) |
4.array_diff_assoc()
在前一个函数的基础上,不仅需要匹配值还要匹配键。
例子:
| <?php $array1=array ("a"=> "green", "b"=> "brown", "c"=> "blue", "red"); $array2=array ("a"=> "green", "yellow", "red"); $result=array_diff_assoc($array1, $array2); ?> |
上例将输出:
| Array ( [b]=> brown [c]=> blue [0]=> red ) |
以上所分享的是关于php基础之数组的合并、拆分、区别取值函数集,下面是编辑为你推荐的有价值的用户互动:
相关问题:php 数组合并的问题
答:$arr[0]=array('1','2','3'); $arr[1]=array('4','5','6');$arr[0] = array_merge($arr[0],$arr[1]); >>详细
相关问题:php 两个普通数组合并为一个普通数组
答://可以用eval $ids1=explode(',',$_MODULE[$ids1]); $ids2=explode(',',$_MODULE[$ids2]); $ids3=explode(',',$_MODULE[$ids3]); for($m=1;$m >>详细
相关问题:PHP 拆分数组
答:array_merge array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。 如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
