【发布时间】:2018-09-01 13:56:33
【问题描述】:
我需要从这个数组中重新排列:
Array
(
[0] => Array
(
[0] => Qty
[1] => 1
[2] => 3
)
[1] => Array
(
[0] => Item No
[1] => ABC345
[2] => FGR8765
)
[2] => Array
(
[0] => Description
[1] => Lores ipsum
[2] => Dolores sit amet
[3] => quasi architecto beatae:
[4] => sed quia consequuntur
[5] => consectetur, adipisci velit
)
[3] => Array
(
[0] => Price
[1] => $10
[2] => $20
)
变成这样:
Array
(
[0] => array(
'Qty' => 1,
'Item No' => 'ABC345',
'Description' => 'Lores ipsum',
'Price' => $10
)
[1] => array(
'Qty' => 3,
'Item No' => 'FGR8765',
'Description' => 'Dolores sit amet quasi architecto beatae sed quia consequuntur consectetur, adipisci velit',
'Price' => $20
)
)
对于每个数组的 0 索引是键的名称:数量,项目编号,描述,价格。 如果索引大于第一个数组的数量,则合并值,正如我们在描述键上看到的,值数组编号 3,4,5 合并到数组编号 2。
这是我目前的尝试:
$itemList = array();
foreach($result as $i => $valueKey)
{
if($i == 0) {
$max = count($valueKey);
}
foreach($valueKey as $y => $item)
{
$itemList[] = array(
$item[0] => $item
);
}
}
【问题讨论】:
-
如果两个项目将包含第一个描述,数组将如何更改?
-
你有控制这个数组的来源吗?感觉修复解析步骤可能比尝试从这个结构重建它更容易。
-
这是一个非常不清楚的问题。如果有三个项目会发生什么?你怎么知道在哪里拆分描述?在这种状态下,这个问题的所有答案都只是纯粹的猜测,只是一个文字代码来做你想做的事。他们都没有处理三个或更多项目的逻辑。或者第一个项目有两个描述项目。