如何在 PHP 中将 2D 数组转换为 3D 数组
您有一个现有的 2D 数组,其中包含不同机器的作业信息。任务是将此数组转换为 3D 数组,按机器名称分组。
所需的输出是一个 3D 数组,其中键是机器名称,每个机器名称包含一个作业记录数组。作业记录包含以下字段:
Job_Name Quantity Start_Date Completion_Date Labor
PHP 代码解决方案:
要将 2D 数组转换为 3D 数组,可以使用以下 PHP代码:
$result = []; foreach ($MainArray as $record) { $result[$record['Machine_Name']][] = $record; }
解释:
foreach 循环遍历 $MainArray 中的每条记录。对于每条记录,它都会检查 Machine_Name 字段,并将该记录添加到 $result 数组中相应的机器数组中。
如果机器名称不作为 $result 数组中的键存在,则会创建它并记录将添加到该键下的数组中。
示例:
给出以下内容$MainArray:
[0] => [ 'Job_Name' => 'WXYZ', 'Quantity' => 1000, 'Machine_Name' => 'Machine1', 'Start_Date' => '2014-07-30 00:00:00', 'Completion_Date' => '2014-08-02 00:00:00', 'Labor' => 4 ] [1] => [ 'Job_Name' => 'ABCD', 'Quantity' => 1500, 'Machine_Name' => 'Machine2', 'Start_Date' => '2014-08-08 00:00:00', 'Completion_Date' => '2014-08-14 00:00:00', 'Labor' => 2 ] [2] => [ 'Job_Name' => 'BCDA', 'Quantity' => 1200, 'Machine_Name' => 'Machine1', 'Start_Date' => '2014-08-02 00:00:00', 'Completion_Date' => '2014-08-07 00:00:00', 'Labor' => 1 ]
$result 数组的输出将是:
[Machine1] => [ [ 'Job_Name' => 'WXYZ', 'Quantity' => 1000, 'Start_Date' => '2014-07-30 00:00:00', 'Completion_Date' => '2014-08-02 00:00:00', 'Labor' => 4 ], [ 'Job_Name' => 'BCDA', 'Quantity' => 1200, 'Start_Date' => '2014-08-02 00:00:00', 'Completion_Date' => '2014-08-07 00:00:00', 'Labor' => 1 ] ] [Machine2] => [ [ 'Job_Name' => 'ABCD', 'Quantity' => 1500, 'Start_Date' => '2014-08-08 00:00:00', 'Completion_Date' => '2014-08-14 00:00:00', 'Labor' => 2 ] ]
这个新的 3D 数组可用于访问按机器名称分组的作业记录。
以上是如何按机器名称将 2D PHP 数组分组为 3D 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!