PHP数组父/子显示/继承

时间:2011-11-24 09:20:20

标签: php arrays inheritance

我的阵列中有一块:

   [0] => stdClass Object
    (
        [id] => 8005
        [parentid] => 8004
        [name] => a, b
        [level] => 1
        [prodtypename] => 1, 2, 3, 4
    )

[1] => stdClass Object
    (
        [id] => 8006
        [parentid] => 8005
        [name] => c
        [level] => 2
        [prodtypename] => 
    )

[2] => stdClass Object
    (
        [id] => 8007
        [parentid] => 8005
        [name] => d
        [level] => 2
        [prodtypename] => 
    )

在我的表单中,我将其显示为:

 <?php foreach ($this->myArray as $item): ?>
 <?php echo $item->prodtypename ?>

它显示当前类别及其当前类型。我需要在子类型旁边显示父“prodtypename”,因此我们可以知道当前子类别的父类型是什么。我试图使显示看起来像这样:

 [1] => stdClass Object
    (
        [id] => 8006
        [parentid] => 8005
        [name] => c
        [level] => 2
        [prodtypename] => 1,2,3,4
    )

因为父母“prodtypename”有1.2.3.4,所以孩子继承了它。感谢。

1 个答案:

答案 0 :(得分:0)

基于数组你已经有这样的事情可能会有所作为,假设你可以依赖父母总是出现在他们孩子面前的数组中:

$prodTypeNames = array();
foreach ($this->myArray as $item) {
    $prodTypeName = $item->prodtypename;
    if( is_null( $item->prodtypename ) && isset( $prodTypeNames[$item->parentid] ) ) {
        $prodTypeName = $prodTypeNames[$item->parentid];
    }
    $prodTypeNames[$item->id] = $prodTypeName;
    echo $prodTypeName;
}

但是你可能最好以更好的格式获取数据。