【问题标题】:Creating nested parent child array from multi dimensional array in php从php中的多维数组创建嵌套的父子数组
【发布时间】:2015-09-02 03:32:50
【问题描述】:

我有这个数组

$array =  Array
    (
        [a] => Array
            (
                [0] => b
                [1] => h
            )

        [b] => c
        [c] => d
        [h] => m
    )

我需要将数组转换为如下所示

Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [c] => Array
                        (
                            [d] => Array
                                (
                                )

                        )

                )

            [h] => Array
                (
                    [m] => Array
                        (
                        )

                )

        )

)

我已经针对一维数组提出了这个问题。

我尝试使用 [Creating nested parent child array from one dimensional array in php,得到以下数组

Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [a] => Array
                        (
                            [h] => Array
                                (
                                    [b] => Array
                                        (
                                            [c] => Array
                                                (
                                                    [d] => Array
                                                        (
                                                        )

                                                    [h] => Array
                                                        (
                                                            [m] => Array
                                                                (
                                                                )

                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)

如何检查键是否存在于多维数组中,如果存在则将子项添加到现有键中。帮助解决问题。提前致谢

【问题讨论】:

  • 我明白了,PHP 是一门很棒的语言。
  • 你有一些代码要给我们看吗?
  • @AdrianCidAlmaguer 我分享了代码的 stockoverflow 链接
  • 如果我理解正确,您首先希望第一级的所有键作为第一个条目的子元素,然后每个子数组的最后一个元素作为最后一个元素的子元素?

标签: php arrays algorithm multidimensional-array


【解决方案1】:
<?php 

$array = array( 
   'a' => array(0=>'b',1=>'h'),
   'b' => 'c',
   'c' => 'd',
   'h' => 'm',
);

$newArray    = array();
$secondarray = array();
$part        = &$newArray;
$i=1;

foreach($array as $first => $second)
{
    if($i==1)
    {
        $firstone=$first;
    }
    else
    {
        if($i==count($array))
        {
            $newArray[$first] = array($second => array());
            $secondarray[$firstone]=$newArray;
        }
        else
        {
            $part = &$part[$first];
            $part[$second] = array();
         }
     }
     $i++;
}

echo '<pre>';print_r($secondarray);

输出

Array
(
    [a] => Array
        (
            [b] => Array
                (
                    [c] => Array
                        (
                            [d] => Array
                                (
                                )

                        )

                )

            [h] => Array
                (
                    [m] => Array
                        (
                        )

                )

        )

)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2020-11-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多