PHP二维数组合并成一维数组或任意维数组
$user = array(
'0' => array('id' => 100, 'username' => 'a1'),
'1' => array('id' => 101, 'username' => 'a2'),
'2' => array('id' => 102, 'username' => 'a3'),
'3' => array('id' => 103, 'username' => 'a4'),
'4' => array('id' => 104, 'username' => 'a5'),
);现在要转换成一维数组,有两种情况:
一种是将指定列转换成一维数组,这在另一篇文章有总结:PHP提取多维数组指定一列的方法大全。
现在我们重点讲第二种情况,就是把所有的值都转换成一维数组,而且键值相同不会被覆盖,转换后的一维数组是这样的:

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
主要有下面几个方法。
1、array_reduce函数法
用array_reduce()函数是较为快捷的方法:
$result = array_reduce($user, function ($result, $value) {
return array_merge($result, array_values($value));
}, array())因为array_merge函数会把相同字符串键名的数组覆盖合并,所以必须先用array_value取出值后再合并。
如果第二维是数字键名,如:
$user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), );
那么直接这样就可以了:
$result = array_reduce($user, 'array_merge', array());
2、array_walk_recursive函数法
用array_walk_recursive()函数就非常灵活,可以把任意维度的数组转换成一维数组。
$result = [];
array_walk_recursive($user, function($value) use (&$result) {
array_push($result, $value);
});例如,下面这个多维数组:
$user4 = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array( 'd' => array(102, 'a3'), 'e' => array(103, 'a4'), ), );
用这个方法后就变成:
$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
3、array_map函数法
用array_map和array_reduce函数的方法类似,如下:
$result = [];
array_map(function ($value) use (&$result) {
$result = array_merge($result, array_values($value));
}, $user);只是需要多声明一个空的$result数组。
另外,也可以用array_walk的方法,和foreach循环的方法,原理和上面一样。
本文来源:词雅网
本文地址:https://www.ciyawang.com/php-array-35.html
本文使用「 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 」许可协议授权,转载或使用请署名并注明出处。
相关推荐
-
Array_combine函数:让数组合并更简单
引言作为一名程序员,我们经常需要合并两个或多个数组。这时候,一个非常方便的函数就出现了,那就是array_combine函数。什么是array_combine函数?array_combine函数是PH...
-
使用PHP读取本地文件的方法
对于需要处理本地文件的PHP应用程序,读取本地文件是必不可少的操作。本文将介绍如何使用PHP读取本地文件。使用file_get_contents函数读取本地文件file_get_contents函数是...
-
PHP Cookies设置:了解cookie是如何工作的
在Web开发中,cookie是一种常见的技术,可以帮助我们保存用户信息,跟踪用户行为和提供个性化体验。在本文中,我们将深入探讨PHP cookies的设置。1. 什么是cookie?cookie是一种...
-
php获取当前月份及相关应用
在PHP中,获取当前月份的方法非常简单。只需要使用date()函数,并指定参数为“m”即可。代码如下:$month = date("m"); echo&nbs...
-
使用PHP的strip_tags()函数从字符串中去除HTML标签
strip_tags()函数可以从字符串中去除HTML标签。请注意,使用allow参数允许的HTML标记不会被剥离,但通常HTML标记总是被剥离。 顺便说一句,它有一个二...
-
如何使用PHP读取文件的6种方法
总结了用PHP读取文件的方法。 试着用6种方法读入文件。 file函数...
-
在PHP中检查文件存在的两种方法!(is_file)
我正在写如何检查 PHP 中是否存在“具有指定路径的文件”。 您可以使用以下两个函数来检查文件路径是否存在。...
-
通俗易懂的讲解nl2br()函数,将换行代码转换成br标签
这次,我将解释将换行字符转换为br标签的nl2br函数! 它非常容易使用! 但是,如果nl2br()函数使用不正确,它可能无法正确转换,所以需要注意!...
-
使用pathinfo函数轻松获取扩展名和文件名
你是否遇到过只想从文件路径中提取文件名或扩展名的情况? 我认为有多种方法,例如使用split分隔符拆分文件路径或使用substr函数提取文件路径。 但是...
-
使用PHP的is_null()函数检查变量是否为NULL
使用PHP的is_null()函数检查变量是否为NULL。 NULL表示没有值,不同于“0”或空字符串。 is_null()函数允许您检查变量是否为NU...
词雅网