如何在php数组中追加元素以及合并多个数组

编辑:管理员 发布时间:2022-07-15 18:56:04391

在使用php代码制作网页时,经常会用到对数组的简单操作,追加数组、合并数组等等,在本文中,简单分享了一些php代码中合并、追加或者连接多个数组的办法.

1、添加数组元素

一维数组:

$array = array('a','b','c');

$array[] = "d";

二维数组:

$array = array('0'=>array('0'=>'a'),'1'=>array('0'=>'b'));

$array[3][]=array('0'=>'c');

$array[3][0]='c';

array_push()函数也可以向数组的尾部添加一个或多个元素,该函数等于多次调用 $array[] = $xxxx。添加的元素始终是数字键名.

array_push($array,"d","e");

如果用array_push给数组只添加一个元素,还是用[]的方法好,直接用方括号不用调用函数。


在数组$array中添加新的元素可以直接在数组后面加上方括号,方括号中为键名,然后等于号给它赋值.

多为数组也是添加方括号每添加一组方括号则向下一个维度.如$array[3]表示二维数组$array中的键名为3的数组,而$array[3][0]表示多为数组中键名为3的一维数组中键名为0元素的数值.

2、删除数组元素

如果需要删除数组中的一个元素,一般可以使用PHP代码中的unset()或array_splice()方法。

$array = array('a','b','c');

unset($array[1]);

array_splice($array, 1, 2);

在php中unset删除数组元素方法,不会改变其他的键,如果想要其它的数字键名重新整理排序需要使用array_values()方法

array_values($array);

array_values()方法会返回指定数组中所有键值的数组,不会保存键名,从0重新开始递增.

那么,array_splice()则会将数组的键名自动重新建立索引,但关联性的数组不起作用,第一个参数为数组,第二个参数为删除元素开始的位置,第三个参数为删除的个数.

而删除多个元素可以选择array_diff与array_diff_key方法

array_diff() 方法

$array = array(0 => "ww", 1 => "tt", 2 => "vv");

$array = array_diff($array, ["ww", "vv"]);

$array = array_diff_key($array, [0,2]);

知道要删除的数组元素的值可以使用array_diff,知道需要删除数组元素的键名时可用array_diff_key.在方括号中写上需要删除的键值或键名.

在一些时候,多维数组中我们需要根据键的名称删除多维数组中指定又该如何?

代码如下:

function keyscarray($shuzu, $szkey){

if(!array_key_exists($szkey, $arr)){

return $shuzu;

}

$szkeys = array_keys($shuzu);

$suoying = array_search($szkey, $szkeys);

if($index !== FALSE){

array_splice($shuzu, $suoying, 1);

}

return $shuzu;

}

那么直接keyscarray(数组, 键名);既可以删除多为数组中指定的值.


3、合并数组

在php中合并数组,一般会用到array_merge与array_merge_recursive函数.

$ar1 = array("1","2","3");

$ar2 = array("a","b","c");

array_merge($ar1,$ar2);

array_merge函数会把数组合并到一块去,然后返回数组。得到的数组从左到右按数组出现顺序依次迫加可以一次性追加多个,如果数组中有相同的文字键名,那么该键名后面的值将会覆盖前一个值,如果数组中包含数字类型的键名,后面的新值将不会覆盖前面数组中原来的值,而是在后面追加,

只有一个数字索引的数组,那么追加后的键名将会重新建立索引

$ar1 = array("a" => 100, "b" => 85);

$ar2 = array("c" => 78, "a" => 45);

$classScores = array_merge_recursive($ar1, $ar2);

array_merge_recursive函数与array_merge的相同之处在于它们都可以将多个数组合并起来组成一个新的数组.但当追加的数组中的有某个键名已经有了它们会采取不同的处理方式.

array_merge会整理代码文字,覆盖数组代码中前面存在的键值,而array_merge_recursive将会把两个相同键名的值合并在一起,以原有的键作为数组名形成一个新的数组.

在php中合并数组,还有一个array_combine函数可以得到一个新数组但它是由一组键名与对应的值组成

$ar1 = array("1","2","3");

$ar2 = array("a","b","c");

array_combine($ar1,$ar2);

array_combine中ar1就是新数组的键名,ar2就是数组中对应的键值.

以上就是在php代码中常见的几种处理数组的方式.

TAGS: php 数组
热门文章
最新文章

热门标签

数学计算路径命令行表单字符符号nginxcookiejavapython数组文字处理小数服务器管理apache图片处理