在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中从另一个对象或数组构建对象