链接/重新索引数组

时间:2014-03-04 17:12:47

标签: php arrays sorting

我有一个Main Array,里面有多个数组。我想要实现的是将它们链接/添加/推送到它们的上/主阵列

Array
(
    [dates] => Array
        (
            [0] => stdClass Object
                (
                    [date] => 2014-02-28
                )

            [1] => stdClass Object
                (
                    [date] => 2014-03-03
                )

        )

    [times] => Array
        (
            [0] => Array
                (
                    [0] => stdClass Object
                        (
                            [start_time] => 17:30
                            [end_time] => 19:30
                        )

                    [1] => stdClass Object
                        (
                            [start_time] => 19:30
                            [end_time] => 21:30
                        )

                    [2] => stdClass Object
                        (
                            [start_time] => 21:30
                            [end_time] => 23:30
                        )

                    [3] => stdClass Object
                        (
                            [start_time] => 23:30
                            [end_time] => 01:30
                        )

                )

            [1] => Array
                (
                    [0] => stdClass Object
                        (
                            [start_time] => 14:00
                            [end_time] => 14:30
                        )

                )

        )

    [streamers] => Array
        (
            [0] => Array
                (
                    [0] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                    [1] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                )

            [1] => Array
                (
                    [0] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                )

            [2] => Array
                (
                    [0] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                )

            [3] => Array
                (
                    [0] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                )

            [4] => Array
                (
                    [0] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )

                    [1] => stdClass Object
                        (
                            [username] => usernamehere
                            [name] => namehere
                        )
                )
        )
)

时间[0]下的数组必须链接/添加到日期[0],用户[0]必须链接/添加到日期[0]

我尝试过array_merge和array_push,但我之前从未使用过类似的东西,所以任何帮助都会很棒。

谢谢!

2 个答案:

答案 0 :(得分:0)

请问print_r而不是var_dump吗? (更容易阅读),你想如何合并?假设我将时间[0]放入日期[0]:是否通过追加?或合并对象?

我会同时尝试(追加):

foreach ($big_array as $key1 => $array) {
    if ($key1 == 'times') {
        //Insert times into dates
        foreach ($array as $key2 => $val) {
           array_push($big_array['dates'][$key2],$val);
        }
    } else if ($key1 == 'users') {
        //Insert users into dates
        foreach ($array as $key2 => $val) {
           array_push($big_array['dates'][$key2],$val);
        }
    }
}

注意:如果只有1就足够了(这只是为了便于阅读),你不需要做2个

答案 1 :(得分:0)

在BabyAzerty的帮助下,我尝试了这个:

            foreach ($streams as $key1 => $array) {

                if ($key1 == 'times') {
                    //Insert times into dates
                    foreach ($array as $key2 => $val) {
                    //array has objects so I had to add this line
                        $test[] = $streams['dates'][$key2];
                        array_push((array)$test, (array)$val);
                    }
                } else if ($key1 == 'streamers') {
                    //Insert users into dates
                    foreach ($array as $key2 => $val) {
                        //var_dump($streams['times']);
                        //array_push($test, $val);
                    }
                }
            }

不添加用户的输出是:

Array
(
    [0] => stdClass Object
        (
            [date] => 2014-02-28
        )

    [1] => Array
        (
            [0] => stdClass Object
                (
                    [start_time] => 17:30
                    [end_time] => 19:30
                )

            [1] => stdClass Object
                (
                    [start_time] => 19:30
                    [end_time] => 21:30
                )

            [2] => stdClass Object
                (
                    [start_time] => 21:30
                    [end_time] => 23:30
                )

            [3] => stdClass Object
                (
                    [start_time] => 23:30
                    [end_time] => 01:30
                )

        )

    [2] => stdClass Object
        (
            [date] => 2014-03-03
        )

    [3] => Array
        (
            [0] => stdClass Object
                (
                    [start_time] => 14:00
                    [end_time] => 14:30
                )

        )

)

我想要实现的目标是:

Array
(
 [0] => Array
  (
    [0] => stdClass Object
        (
            [date] => 2014-02-28
        )

    [1] => Array
        (
            [0] => stdClass Object
                (
                    [start_time] => 17:30
                    [end_time] => 19:30
                )

            [1] => stdClass Object
                (
                    [start_time] => 19:30
                    [end_time] => 21:30
                )

            [2] => stdClass Object
                (
                    [start_time] => 21:30
                    [end_time] => 23:30
                )

            [3] => stdClass Object
                (
                    [start_time] => 23:30
                    [end_time] => 01:30
                )

        )
  )

 [1] => Array
  (
    [0] => stdClass Object
        (
            [date] => 2014-03-03
        )

    [1] => Array
        (
            [0] => stdClass Object
                (
                    [start_time] => 14:00
                    [end_time] => 14:30
                )
        )
   )

)

谢谢!