我有一个数组 $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 来说效率不高。
您可以在 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);