获取三维数组的第一个数组


get first array of a 3 dimensional array

以以下三维数组为例:

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] => 
            )
    )
)

我想选择三维数组的第一个数组,并将其分配给另一个数组,我们称之为$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 的数组

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

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

检查此工作小提琴

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

var_dump($arr_first);

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