> 백엔드 개발 > PHP 튜토리얼 > php基础之数组的合并、拆分、区别取值函数集_PHP教程

php基础之数组的合并、拆分、区别取值函数集_PHP教程

WBOY
풀어 주다: 2016-07-13 17:45:42
원래의
754명이 탐색했습니다.

PHP数组的合并、拆分、区别取值函数集
都说PHP的数组功能很强大、只有真正用于项目工作当中才能够感受得到,至少我认为是,现在已慢慢的发觉其中的奥秘了……
合并数组有三个函数:
1.array_combine()
携带两个参数数组,参数数组一的值作新数组的键,参数数组二的值作新数组的值。很简单。
例子:
$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()
携带两个参数数组,简单的将数组二追加到数组一的后面构成新数组。
例子:
$arrayarray1 = array("color" => "red", 2, 4);  
$arrayarray2 = 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()的处理方式是重构子数组,将重复的键的值组成一个新的数值数组。
例子:
$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为空,则结束位置在数组结尾。
例子:
$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  
)   
2.array_splice()
携带三个参数,同上,作用是删除从offset开始长度为length的子数组。
例子:
$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()
携带参数不定,均为数组,返回所有数组中公共元素的值组成的数组,数组的键由所在第一个数组的键给出。
例子:
$arrayarray1 = array("a" => "green", "red", "blue");  
$arrayarray2 = array("b" => "green", "yellow", "red");  
$result = array_intersect($array1, $array2);  
?>   
 
上例将输出:
Array  
(  
[a] => green  
[0] => red  
)  
2.array_intersect_assoc()
在前一个函数的基础上,返回所有数组中键、值均相同的键值对。
例子:
$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()
携带多个数组,返回第一个数组中有的而后面的数组中没有的所有的值组成的新数组,对应键取自第一个数组。
例子:
$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()
在前一个函数的基础上,不仅需要匹配值还要匹配键。
例子:
$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  
)   

作者“飞翔的人生”

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/478628.htmlTechArticlePHP数组的合并、拆分、区别取值函数集 都说PHP的数组功能很强大、只有真正用于项目工作当中才能够感受得到,至少我认为是,现在已慢慢...
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿