PHP二维数组如何转换成一维数组

  介绍

小编给大家分享一下PHP二维数组如何转换成一维数组,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,

假设有下面一个二维数组:

$ user=阵列(   & # 39;0 & # 39;=比;数组(& # 39;id # 39;=比;100年,& # 39;用户名# 39;=比;& # 39;a1 # 39;),   & # 39;1 & # 39;=比;数组(& # 39;id # 39;=比;101年,& # 39;用户名# 39;=比;& # 39;a2 # 39;),   & # 39;2 & # 39;=比;数组(& # 39;id # 39;=比;102年,& # 39;用户名# 39;=比;& # 39;a3 # 39;),   & # 39;3 & # 39;=比;数组(& # 39;id # 39;=比;103年,& # 39;用户名# 39;=比;& # 39;a4 # 39;),   & # 39;4 & # 39;=比;数组(& # 39;id # 39;=比;104年,& # 39;用户名# 39;=比;& # 39;a5 # 39;),   );

现在要转换成一维数组,有两种情况:

一种是将指定列转换成一维数组,这在另一篇文章有总结:《PHP提取多维数组指定一列的方法大全》。

现在我们重点讲第二种情况,就是把所有的值都转换成一维数组,而且键值相同不会被覆盖,转换后的一维数组是这样的:

$=结果数组(100 & # 39;a1 # 39;, 101 & # 39; a2 # 39;, 102 & # 39; a3 # 39;, 103 & # 39; a4 # 39;, 104 & # 39; a5 # 39;);

主要有下面几个方法。

<强> 1的形式函数法

用形式()函数是较为快捷的方法:

$结果=形式($ user,函数(因此,美元价值){   返回array_merge(美元)因此,元素(值)美元);   },数组())

因为array_merge函数会把相同字符串键名的数组覆盖合并,所以必须先用array_value取出值后再合并。

如果第二维是数字键名,如:

$ user=阵列(   & # 39;一个# 39;=比;数组(100 & # 39;a1 # 39;),   & # 39;b # 39;=比;数组(101 & # 39;a2 # 39;),   & # 39;c # 39;=比;数组(102 & # 39;a3 # 39;),   & # 39;d # 39;=比;数组(103 & # 39;a4 # 39;),   & # 39;e # 39;=比;数组(104 & # 39;a5 # 39;),   );

那么直接这样就可以了:

$结果=形式($ user, & # 39; array_merge& # 39;,数组())

<强> 2 array_walk_recursive函数法

用array_walk_recursive()函数就非常灵活,可以把任意维度的数组转换成一维数组。

=[]美元结果;   array_walk_recursive ($ user、功能(价值美元)使用(,因此美元){   array_push(因此,美元价值);   });

例如,下面这个多维数组:

$ user4=阵列(   & # 39;一个# 39;=比;数组(100 & # 39;a1 # 39;),   & # 39;b # 39;=比;数组(101 & # 39;a2 # 39;),   & # 39;c # 39;=比;阵列(   & # 39;d # 39;=比;数组(102 & # 39;a3 # 39;),   & # 39;e # 39;=比;数组(103 & # 39;a4 # 39;),   ),   );

用这个方法后就变成:

$=结果数组(100 & # 39;a1 # 39;, 101 & # 39; a2 # 39;, 102 & # 39; a3 # 39;, 103 & # 39; a4 # 39;);

<强> 3到函数法

用到和形式函数的方法类似,如下:

=[]美元结果;   到函数(美元值)使用(,因此美元){   结果(结果=array_merge美元,元素(值)美元);   },$ user);

只是需要多声明一个空的结果数美元组。

另外,也可以用array_walk的方法,和foreach循环的方法,原理和上面一样。

看完了这篇文章,相信你对PHP二维数组如何转换成一维数组有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

PHP二维数组如何转换成一维数组