列的2D数组的组行,并在每个组中创建子阵列[封闭]

问题描述 投票:0回答:1
$MainArray = Array ( [0] => Array ( [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] => Array ( [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] => Array ( [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 ) )
我想使用此信息创建一个看起来像这样的新3维数组。
$ConvertedArray = Array ( [Machine1] => Array ( [0] => Array ( [Job_Name] => WXYZ [Quantity] => 1000 [Start_Date] => 2014-07-30 00:00:00 [Completion_Date] => 2014-08-02 00:00:00 [Labor] => 4 ) [1] => Array ( [Job_Name] => BCDA [Quantity] => 1200 [Start_Date] => 2014-08-02 00:00:00 [Completion_Date] => 2014-08-07 00:00:00 [Labor] => 1 ) ) [Machine2] => Array ( [0] => Array ( [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上有工作,并且没有其他作业在该机器上具有更高的密钥,那么它将成为该作业的键0,并使用该计算机名称创建一个新键。
	

使用以下代码: -

$result = [];
foreach($MainArray as $record){
 $result[$record['Machine_Name']][] = $record;
}

php arrays multidimensional-array grouping sub-array
1个回答
2
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.