在php中从另一个数组创建一个数组

在php中从另一个数组创建一个数组,php,arrays,Php,Arrays,我有一个像这样的数组。这是一个二维数组 $MainArray = Array ( [0] => Array ( [Job_Name] => WXYZ [Quantity] => 1000 [Machine_Name] => Machine1 [Start_Date] => 2014-07-30 00:00:00 [Compl

我有一个像这样的数组。这是一个二维数组

$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
        )
 )
我想用这些信息创建一个新的三维数组,看起来像这样

$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,并使用该机器名创建一个新密钥

非常感谢您在这方面的帮助。

请使用以下代码:-

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

您试图获得想要的特定输出的内容@Mav我们如何知道哪些子阵列应该在输出中保留
Machine\u Name
元素?查看
Machine1
子数组如何不包含
Machine\u名称
元素,而
Machine2
子数组如何包含?这使您的问题成为一个不明确的“需求转储”。重复:这是否回答了您的问题?这段无法解释的代码片段对它的输出撒了谎。想知道我怎么知道你只是从OP的问题主体复制了输出
Machine\u Name
仅在最后一个子数组的数据中。@mickmackusa:感谢您指出这一点。4年前回答了,所以不完全是这个想法,但是是的
机器名称
钥匙不见了。只是删除了输出。我想OP只是想根据
Machine\u Name
来区分数据。现在您只需要在代码片段中附带一个解释。我使用旧页面来关闭新的副本,但我不能很好地使用此页面来教育用户,因为1。这个问题不是100%清楚的。答案没有解释。