我需要创建一个多维数组

时间:2019-08-02 11:08:07

标签: php arrays

我正在尝试在Laravel 5.8中创建多维数组,但似乎无法正常工作。

它在PHP 7.3和Laravel 5.8上运行。 这是我已经尝试过的方法:

foreach ($locations as $location) {
    $email_data = array($address => array($location));
}
    $arr = array($email_data[count($email_data)-1] => $address);

for ($i=count($email_data) - 2 ; $i>=0 ; $i--) {
    $arr = array($email_data[$i] => $arr);
}

foreach ($ageMatches as $ageMatch) {
    $age['Age'] = $ageMatch[1];
    array_push($arr, $age);
}

这是我正在使用的数据:

        ELY FARM
      THE ADDRESS
  BW8010 2.55  UNIT 1

Logged   03 JUN 19 23:59

     SUMMARY REPORT

----UNIT 1  PERCH 1-----
     House 1, Pen 1

Age         DAYS       7
Total               3997
Average     GMS       64
Deviation   GMS       14
Evenness    %         29
C.V.        %       21.9
Daily gain  GMS        9

----UNIT 1  PERCH 2-----
     House 1, Pen 2

Age         DAYS       7
Total               3849
Average     GMS       73
Deviation   GMS       17
Evenness    %         29
C.V.        %       23.3
Daily gain  GMS        9

所以我想成为:

array(
"Ely Farm" => array(
    "Unit 1 Perch 1" => array( 
        "Age" => 7,
        "Total" => 3849,
    ),
    "Unit 1 Perch 2" => array(
        "Age" => 7,
    )
),
"Next Location" => array(
    array(
    ),
);

目前,我有以下内容,但我无法在出错的地方工作(如果我转储$location[1],它的确会显示位置而不是连字符,但是当我不转储时,它就会出现如下)。

array:1 [▼
  "Ely Farm" => array:1 [▼
    0 => array:2 [▼
      0 => "------------------------"
      1 => "---------------"
    ]
  ]
]

1 个答案:

答案 0 :(得分:0)

在此块中,您每次迭代都重写$email_data

foreach ($locations as $location) {
    $email_data = array($address => array($location));
}

您应该做的是

foreach ($locations as $location) {
    $email_data[] = array($address => array($location));
}

这将连续添加值,而不是替换它们。您在$arr

下也遇到了同样的问题