得到一个三维数组的第一个数组

时间:2013-08-21 20:16:21

标签: php arrays

以下面的三维数组为例:

Array
(
[324] => Array
    (
        [0] => Array
            (
                [workid] => 324
                [wname] => Y quiero llegar a más / Para triunfar en la vía
                [recordingid] => 476
                [rname] => Y quiero llegar a más / Para triunfar en la vía
                [rsubname] => Fandangos sevillanos
            )

    )

[325] => Array
    (
        [0] => Array
            (
                [workid] => 325
                [wname] => Ya basta
                [recordingid] => 479
                [rname] => Ya basta
                [rsubname] => 
            )

    )

[326] => Array
    (
        [0] => Array
            (
                [workid] => 326
                [wname] => Y sin embargo te quiero
                [recordingid] => 563
                [rname] => Y sin embargo te quiero
                [rsubname] => 
            )

        [1] => Array
            (
                [workid] => 326
                [wname] => Y sin embargo te quiero
                [recordingid] => 562
                [rname] => Y sin embargo te quiero
                [rsubname] => (continuación)
            )

        [2] => Array
            (
                [workid] => 326
                [wname] => Y sin embargo te quiero
                [recordingid] => 478
                [rname] => Y sin embargo te quiero
                [rsubname] => 
            )

    )
)

我想选择3维数组的第一个数组并将其分配给另一个数组,我们称之为 $ arr_first

$ arr_first 的输出应该如下所示

Array
                (
                    [workid] => 324
                    [wname] => Y quiero llegar a más / Para triunfar en la vía
                    [recordingid] => 476
                    [rname] => Y quiero llegar a más / Para triunfar en la vía
                    [rsubname] => Fandangos sevillanos
                )

当然,我可以循环并获得我想要的东西。但我需要知道什么是最优雅,最快速的方法来实现这个循环整个阵列?

编辑: 数组只是一个例子......它是硬编码的。关键值可能会改变。所以我需要让第一个数组独立于id

2 个答案:

答案 0 :(得分:2)

试试这个:(假设$old_array是你的3-dim数组)

$arr_first = array_merge(array(), reset(reset($old_array))); // merge with empty array to clone
print_r($arr_first);

使用array_shift()代替reset()也会删除数组中的第一个元素,因此请注意。

我已经使用了array_merge(),因为你问“并将它分配给另一个数组”,但是如果两个数组都相同,你可以放弃array_merge()并坚持:

 $arr_first = reset(reset($old_array));

<强> Check this working fiddle

答案 1 :(得分:0)

$ arr_first = array_shift(array_values($ array));

的var_dump(arr_first $);

通过这种方式,您可以始终首先独立于id。