在自身的递归关联数组中转换assoc数组

时间:2014-03-21 15:46:27

标签: php arrays multidimensional-array logic

可能我没有在标题中写好问题,但我会尝试通过几个例子来澄清: 我是这样的阵列,它是我的第一个阵列:

Array(
    ELEMENT1(
        subelement1.1
        subelement1.2
        subelement1.3
    )
    ELEMENT2(
        subelement2.1
        subelement2.2
        subelement2.3
    )
    ELEMENT3(
        subelement3.1
        subelement3.2
        subelement3.3
    )
)

这就是我能够获得的结果

Array(
    ELEMENT1(
        subelement1.1
             ELEMENT2(
                subelement2.1
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.2
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.3
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
            )
        subelement1.2
             ELEMENT2(
                subelement2.1
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.2
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.3
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
            )
        subelement1.3
             ELEMENT2(
                subelement2.1
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.2
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
                subelement2.3
                     ELEMENT3(
                        subelement3.1
                        subelement3.2
                        subelement3.3
                    )
            )
    )

)

我想了解数组之间这种类型的交互的名称,如果可能的话,还有一个逻辑解释来执行此操作。

1 个答案:

答案 0 :(得分:0)

我想你想做一个简单的数据重组。假设您想要将来自不同制造商的某些产品加入到几个不同的类别中,最好选择它们,例如,在查询或条件中,并设置此数组。在良好实践中:

...

$subelements = array(
    'ELEMENT1' => array(
    'subelement1.1' => 'sector 1',
    'subelement1.2' => 'sector 10',
    'subelement1.3' => 'sector 10'
    ),
    'ELEMENT2' => array(
    'subelement2.1' => 'sector 5',
    'subelement2.2' => 'sector 1',
    'subelement2.3' => 'sector 7'
    ),
    'ELEMENT3' => array(
    'subelement3.1' => 'sector 2',
    'subelement3.2' => 'sector 7',
    'subelement3.3' => 'sector 10'
    )
);

foreach($subelements as $key => $value)
{
    foreach($value as $key2 => $value2)
    {
        $example[$value2][$key][] = $key2;      
    }
}

print_r($example);

...