在php中从另一个数组创建一个数组[关闭]

Posted

技术标签:

【中文标题】在php中从另一个数组创建一个数组[关闭]【英文标题】:Creating one array from another array in php [closed] 【发布时间】:2016-05-30 03:06:35 【问题描述】:

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

$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 并创建一个具有该机器名称的新键。

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

【问题讨论】:

你试图得到什么你想要的特定输出..! @Mav 我们如何知道哪些子数组应该在输出中保留Machine_Name 元素?看看Machine1 子数组如何不包含Machine_Name 元素,而Machine2 子数组呢?这使您的问题成为不清楚的“需求转储”。 重复:***.com/q/12706359/2943403 这能回答你的问题吗? How to group subarrays by a column value? 【参考方案1】:
foreach ($MainArray as $value) 
    $name = $value['Machine_Name'];
    unset($value['Machine_Name']);
    $ConvertedArray[$name][] = $value;

【讨论】:

【参考方案2】:

使用下面的代码:-

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

【讨论】:

这个无法解释的 sn-p 告诉 fibs 它的输出。想知道我怎么知道您只是从 OP 的问题正文中复制了输出? Machine_Name 仅在最后一个子数组的数据中。 @mickmackusa :感谢您指出。 4 年前回答过这个问题,所以不完全是这个想法,但是是的,Machine_Name 密钥丢失了。刚刚删除了输出。我认为OP只是想根据Machine_Name区分数据。 现在你只需要给你的sn-p一个解释。我使用旧页面关闭新的重复页面,但我不能自信地使用此页面来教育用户,因为 1. 问题不是 100% 清楚,2. 没有解释答案。

以上是关于在php中从另一个数组创建一个数组[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 Wordpress Admin 中从 PHP 数组创建“下载到 CSV”按钮

在Google Apps脚本和javascript / jQuery中从另一个对象或数组构建对象

如何在 PHP 中从具有 2 个计数的数组创建 2 个集合?

在jQuery中从数组创建html表

从 MySQL 结果创建 PHP 数组

如何在集合视图中从数组显示项目到特定的 indexPath [关闭]