我的数组看起来像这样
Array
(
[0] => A
[1] => B
[2] => C
)
所需数组
Array
(
[0] => Array
(
[0] => A
)
[1] => Array
(
[0] => B
)
[2] => Array
(
[0] => C
)
)
我已经浏览了这些链接,但作为新手无法找到解决方案。
例如:
$new_array = array_map(
function ($v) { return [$v]; },
['A', 'B', 'C']
);
这是关于如何获取所需数组的总括声明:
$desired_array = array(array("0"=>"A"), array("0"=>"B"), array("0"=>"C"));
但是,动态地,您可以执行以下操作:
//Assume $original_array = array("0"=>"A", "1"=>"B", "2"=>"C");
$desired_array = array(); // New Array
for($i = 0; $i < count($original_array); $i++){ // Loop over all elements in original array
array_push($desired_array, array("0"=>$original_array[$i])); // Place each valueable as an array in new desired array
}
$arrOld = ['A','B','C','D','E'];
$arrNew = [];
foreach($arrOld as $key => $value){
$arrNew[] = [$key => $value];
}
以下所有片段都提供相同的结果。 (演示)
将数组分成 1 元素块:
var_export(array_chunk($array, 1));
将要转换的每个元素映射为包含原始值的 1 元素数组:
var_export(array_map(fn($v) => (array) $v, $array));
将每个元素映射为子数组中的单个值
var_export(array_map(fn($v) => [$v], $array));
使用带有一对方括号的无体循环将每个值作为新元素的唯一子元素。
$result = [];
foreach ($array as $result[][]);
var_export($result);