【问题标题】:Insert values inside multidimensional array在多维数组中插入值
【发布时间】:2016-08-31 05:10:03
【问题描述】:

在我的 PHP 应用程序中,从 DB 获取结果。处理结果后,我需要使用 foreach 转换如下结果

Array
(

[1] => Array -----> This is intent 1, this key indicates all intent values which is equal to 1, should belongs to here.

    (
        [0] => Array
            (
                [name] => A
                [indent] => 1 
            )

       [1] => Array
            (
                [name] => B
                [indent] => 1 
            )

    )

[2] => Array
    (
        [0] => Array
            (
                [name] => B
                [indent] => 2 
            )

        [1] => Array
            (
                [name] => A
                [indent] => 2 
            )

    )

[3] => Array
    (
        [0] => Array
            (
                [name] => A
                [indent] => 3 

            )

    )
)

我有一些共同的意图值,共同的意图值存储在像 array('1'=> array(array[0],array[1])); 这样的数组中。。 p>

我试过的是

foreach($results as $data){
        $root_array[$data['intent']] = array($data);
}

这将替换旧数组并插入最后一个常用的意图值。

我得到如下结果,意图 1 和意图 2 被替换为最后一个数据

Array
(

[1] => Array 

(


   [0] => Array
        (
            [name] => B
            [indent] => 1 
        )

)

[2] => Array
(

    [0] => Array
        (
            [name] => A
            [indent] => 2 
        )

)

[3] => Array
(
    [0] => Array
        (
            [name] => A
            [indent] => 3 

        )

)
)

【问题讨论】:

    标签: php arrays for-loop multidimensional-array


    【解决方案1】:

    在循环中你必须检查当前缩进是否已经被初始化。如果没有,则创建它,否则只需将新数据附加到它。

    foreach($results as $data) {
        if (!isset($root_array[$data['indent']])) {
            $root_array[$data['indent']] = array($data);
        } else {
            $root_array[$data['indent']][] = $data;
        }
    }
    

    【讨论】:

    • 非常感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-06
    • 2021-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多