2013-08-21 37 views
0

的第一阵列:得到给出下面的3维数组作为例子,3维数组

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的outpout应该是这样的

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

试试这个:(假设$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)); 

Check this working fiddle

+0

同样的事情,我得到的错误:严格的标准:只有变量应该通过引用传递在C:\ public_html \ songbook \ index.php 52行 – Marco

+0

@Marco这是52行? –

+0

错误是因为我尝试附上两个或更多的函数处理数组类型的变量,PHP将返回一个错误.. – Marco

0

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

var_dump($ arr_first);

这样你就可以始终独立于id。

+0

即时获取此错误:严格标准:只有变量应该通过在第48行的C:\ public_html \ songbook \ index.php中引用 – Marco

+0

我做过,即时仍然得到该错误 – Marco

+0

好的问题是,当我试图封装两个或更多的函数处理数组类型的变量,PHP会返回一个错误..那beeing说,这个解决方案返回第一个2维数组..我想最后一个数组 – Marco