首页 > 解决方案 > 用 PHP 分组数组结构

问题描述

我需要从这个数组重新排列:

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
        );
    }
}

标签: phparraysgrouping

解决方案


$input = array(/* input array */);
$output = array(/* output array */);

foreach ($input as $property)
{
    $propcount = count($property);
    for ($i = 1; $i < $propcount; $i++)
        $output[$i - 1][$property[0]] = $property[$i];
}

推荐阅读