欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

php 数组操作 array操作 相加 相连 合并 相减 压入 差集等等 有大用 有大大用 有大大大用

shiping1 的头像

//array_diff 两个数组相减两个数组的差集  是值的差集 ,不是键的差集
//元素  属于前一个数组 ,且不属于后一个数组,的元素组成的新数组
$userIds=array(1,3,5,7,9);
$userId = array(3,5,9);
$userIds = array_diff($userIds,$userId);
var_dump($userIds);
//结果 array(2) { [0]=> int(1) [3]=> int(7) }


<?php
//array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
?>

//array_unshift() 函数在数组开头插入一个或多个元素。
//array_unshift(array,value1,value2,value3...)
//$a=array("a"=>"Cat","b"=>"Dog");
//array_unshift($a,"Horse");  //该函数会返回数组中元素的个数。
//print_r($a);

$a=array("a"=>"Cat","b"=>"Dog");
array_unshift($a,'"b"=>"Dog"');  //该函数会返回数组中元素的个数。
print_r($a);





<?php
//http://www.w3school.com.cn/php/func_array_splice.asp
//删除数组元素     array_splice(array,offset,length
//这里最好传址&$arr, 是原来的那个数组 删除一个元素
function array_remove(&$arr, $offset)
{
  //第一个是数组 第二个是移除的开始位置 第三个是长度 ,它是传址
  //第四个是用其它的值 来代替
    array_splice($arr, $offset, 1);
}
$arr = array('apple','banana','cat','dog');
array_remove($arr, 2);
print_r($arr);
$input = array("red", "green", "blue", "yellow");
array_splice($input, 2);
// $input is now array("red", "green")
?>


<?php
//  http://www.w3school.com.cn/php/func_array_splice.asp
//删除数组元素     array_splice(array,offset,length
//这个是返加删除掉的元素 作为一个数组
function array_remove($arr, $offset)
{
    return array_splice($arr, $offset, 1);
}
$arr = array('apple','banana','cat','dog');
$arr = array_remove($arr, 2);
print_r($arr);
array_push($input, $x, $y)  array_splice($input, count($input), 0, array($x, $y))  // 从下面向上推
array_pop($input)  array_splice($input, -1)   //从下面向下拉
array_shift($input)  array_splice($input, 0, 1)  //从上面向上弹
array_unshift($input, $x, $y)  array_splice($input, 0, 0, array($x, $y))  //从上面向下压
$input[$x] = $y // 对于键名和偏移量等值的数组  array_splice($input, $x, 1, $y)
?>

数组相加 数组合并
<?php
//  http://www.w3school.com.cn/php/func_array_merge.asp
/* array_merge()  合并,函数把两个或多个数组合并为一个数组。
如果 字符串键名 有重复,该键的键值为最后一个键名对应的值(后面的覆盖前面的)。
如果 数组是数字索引 的,则键名会以连续方式重新索引(不会覆盖)
注释:如果仅仅向 array_merge() 函数输入了一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引。(参见例子 2)

在数字索引的情况下 并集  
array_unique(array_merge($a, $b))
语法
array_merge(array1,array2,array3...)
参数    描述
array1    必需。输入的第一个数组。
array2    必需。输入的第二个数组。
array3    可选。可指定的多个输入数组。*/
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
//Array ( [a] => Horse [b] => Cat [c] => Cow )
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
//Array ( [0] => Horse [1] => Dog )
?>

数组相加 数组合并
<?php

//  加号合并
//合并后,如果有字符串键名相同的,则取第一个键对应的值, (如果数组是数字索引,同样是只取第一个键对应的值)
//如果键名相同,则合并到一个数组里 值取第一个键名对应的值(前面的覆盖后面的)

$arr1 = array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
$arr2=array("a"=>"Doger","e"=>"Cat","f"=>"Horse");
var_dump($arr1+$arr2);
//array(5) { ["a"]=> string(3) "Dog" ["b"]=> string(3) "Cat" ["c"]=> string(5) "Horse" ["e"]=> string(3) "Cat" ["f"]=> string(5) "Horse" }

$arr1 = array( "Dog","Cat","Horse");
$arr2=array( "Doger","Cat","Horse");
var_dump($arr1+$arr2);
//array(3) { [0]=> string(3) "Dog" [1]=> string(3) "Cat" [2]=> string(5) "Horse" }


普通分类: