首页 > 解决方案 > 如何从一维数组创建具有关联子数组的数组?

问题描述

我有以下数组。

Array(
[1041] => 30
[1046] => 10
[1047] => 10
)

我想像下面一样存储它。

Array([0] => Array
(
    [material_name] => 1041
    [material_qty] => 30
) 
[1] => Array
(
    [material_name] => 1046
    [material_qty] => 10
)
[2] => Array
(
    [material_name] => 1047
    [material_qty] => 10
) )

现在我正在尝试存储键值,但它只存储最后一个。

for($i=0; $i<count($materials); $i++){
              foreach($materials as $key => $value){
                 $dataArrMaterial[$i] = array(
                        'material_name' => $key,
              'material_qty' => $value
                         );
              } }
              _print($dataArrMaterial);

我的输出如下。

Array(
[0] => Array
    (
        [material_name] => 1047
        [material_qty] => 10
    )

[1] => Array
    (
        [material_name] => 1047
        [material_qty] => 10
    )

[2] => Array
    (
        [material_name] => 1047
        [material_qty] => 10
    ) )

现在请帮助我做到这一点。提前致谢。

标签: phparraysmultidimensional-arrayassociative-array

解决方案


你可以简化很多:

<?php
// ...
$dataArrMaterial = [];
foreach ($materials as $materialName => $materialQty) {
    $dataArrMaterial[] = [
        "material_name" => $materialName ,
        "material_qty" => $materialQty
    ];
}

推荐阅读