PHP:如何从数组创建多维数组

问题描述 投票:0回答:1

我有一个数组 $in=[a,b,c,...,n],我必须创建一个多维数组 $out=[a][b][c][...][n]。 n 未知且可能变化。我需要一种优雅的方法来解决这个问题。

$in = [a,b,c,n]; $out = [];
foreach($in as $key=>$value){
   $out = ?????
}
print_r($out);
//  $out=[a][b][c][n]

用法:我有一个数组[城市,街道,人物,姓名],我需要[城市][街道][人物][姓名]

目前,我正在使用几个 if(count($in)==x){}-Elements,这可以工作,但对于高值 n 来说效率不高。

php arrays multidimensional-array
1个回答
0
投票

您可以在 array_map

 的元素上使用 
$in
,将每个值替换为包含它的数组:

$in = ['a','b','c','n'];
$out = array_map(fn($v) => [$v], $in);
print_r($out);

输出:

(
    [0] => Array
        (
            [0] => a
        )
    [1] => Array
        (
            [0] => b
        )
    [2] => Array
        (
            [0] => c
        )
    [3] => Array
        (
            [0] => n
        )
)

3v4l.org

进行演示

如果您使用的是 PHP7.3 或更低版本(不支持箭头函数),请使用

$out = array_map(function($v) { return [$v]; }, $in);
© www.soinside.com 2019 - 2024. All rights reserved.