PHP数组父/子显示/继承



这里有一个数组:

   [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,所以子结点继承它。谢谢。

基于数组,你已经有了类似这样的东西,假设你可以依赖父元素总是在其子元素之前出现在数组中:

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

但是你最好一开始就用更好的格式获取数据

最新更新