【发布时间】:2016-05-09 12:40:42
【问题描述】:
我有一个数组(从 excel 文件中获取数据),我一直在尝试“合并”依赖于 ID 的数据。我设法创建了数组(将产品分组到 ID),结果如下。
Array ( [Order10] => Array ( [Mr Name] => Array ( [45 STREET] => Array ( [AREA] => Array ( [Product1] => 1 [Product2] => 3 ) ) ) ) )
我现在正在尝试提取数据(订单、名称、街道等),但我只设法使用 key(var) 提取 ID (Order10)。这是当前代码的基本布局。
//Gets Data from excel file
foreach ($bulk as $prod)
{
$APIOrder[] = array('Order' => $prod['ORDER'],
'Prod' => $prod['PROD'],
'Quantity' => $prod['QTY'],
'Recipient_Name' => $prod['RECIPIENT_NAME']);
}
$newOptions = array();
foreach ($APIOrder as $option)
{
$Order = $option['Order'];
$Prod = $option['Prod'];
$Qty = $option['Quantity']; //Added
$Recipient_Name = $option['Recipient_Name'];
$newOptions[$Order][$Recipient_Name][$Prod] = $Qty;
}
$index4 = 0;
foreach($newOptions as $key=>$val)
{
$SeperateOptions = (array_slice($newOptions, $index4, true));
//Print Array to check, Echo ID, Name, Product
$index4++;
}
如果我在 foreach 循环中没有代码,我可以提取这些数据。这样做的问题是订单的重复取决于订单上有多少产品,这使得将订单插入数据库系统变得更加困难。下面的例子:
Array ( [Order10] => Array ( [Mr Name] => Array ( [45 STREET] => Array ( [AREA] => Array ( [Product1] => 1) ) ) ) )
Array ( [Order10] => Array ( [Mr Name] => Array ( [45 STREET] => Array ( [AREA] => Array ( [Product2] => 3) ) ) ) )
正如我所说,如果我不尝试将所有产品放入数组中,我可以提取数据,但是当数据被发送到数据库时,我必须创建一个循环来添加缺失的产品.任何方向都将不胜感激。
【问题讨论】:
-
你不能这样做。在 PHP 中,数组键应该是唯一的,并且只能是字符串或整数。你现有的数组很好。
-
@lolka_bolka 感谢您的回复,因此请保留一个数组(包含多个产品)。我将如何“提取”地址等关键名称?这是我目前的方式遇到的问题。
标签: php arrays multidimensional-array