转换步骤:1、使用array_reduce()函数将二维数组转为一维数组,语法“array_reduce(二维数组, ‘array_merge’, array())”,会返回一个包含二维数组中所有元素值的一维数组;2、使用implode()函数将一维数组转为字符串即可,语法“implode(“分隔符”,一维数组)”。
本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
在PHP中,可以使用array_reduce()函数和implode()函数来将二维数组转为字符串。
实现步骤:
步骤1:使用array_reduce()函数将二维数组转为一维数组
array_reduce() 函数发送数组中的值到用户自定义函数,并返回一个字符串。
array_reduce(array,myfunction,initial)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
myfunction | 必需。规定函数的名称。 |
initial | 可选。规定发送到函数处理的第一个值。 |
只需要使用array_reduce()调用array_merge()函数即可将二维数组转为一维数组
$result = array_reduce($user, function ($result, $value) { return array_merge($result, array_values($value)); }, array())
因为array_merge函数会把相同字符串键名的数组覆盖合并,所以必须先用array_value取出值后再合并。
如果第二维是数字键名,那么直接这样就可以了:
$result = array_reduce($user, 'array_merge', array())
会返回一个包含二维数组中所有元素值的一维数组,示例:
<?php header('content-type:text/html;charset=utf-8'); $user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), ); echo "原二维数组:"; var_dump($user); $result = array_reduce($user, 'array_merge', array()); echo "转为一维数组后:"; var_dump($result); ?>
步骤2:使用implode()函数将一维数组转为字符串
implode() 函数可以将一个一维数组转化为字符串,其语法格式如下:
implode([$glue,]$array)
-
$glue 用来设置一个字符串,表示使用 $glue 将数组每个元素连接在一起,默认情况下 $glue 为空字符串;
-
$array 为需要转换的数组。
说明:implode() 函数的 $glue 参数是可选的,可以省略;默认连接符是 “”(空字符串)。
<?php header('content-type:text/html;charset=utf-8'); $user = array( 'a' => array(100, 'a1'), 'b' => array(101, 'a2'), 'c' => array(102, 'a3'), 'd' => array(103, 'a4'), 'e' => array(104, 'a5'), ); echo "原二维数组:"; var_dump($user); $result = array_reduce($user, 'array_merge', array()); echo "转为一维数组后:"; var_dump($result); echo "转为字符串后:"; var_dump(implode("",$result)); var_dump(implode("-",$result)); var_dump(implode(" ",$result)); ?>