2016-03-06 56 views
1

是否可以使用函數列出數組中的數組?PHP列表數組

我有一個插件的配置數組,我在其中調用將從數組中列出數組的函數。

'fields' => array(
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something') 
      ) 

我做了功能:

function config(){ 
       $a = array('id'=>'someidA','id'=>'somethingA'); 
       $b = array('id'=>'someidB','id'=>'somethingB'); 
    return array($a,$b); 

} 

當調用配置()的陣列功能,我得到:

'fields' => array(
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something'), 
       array(
         array('id'=>'someidA','id'=>'somethingA'), 
         array('id'=>'someidB','id'=>'somethingB') 
        ) 
      ) 

但我需要:

'fields' => array(
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someid','id'=>'something'), 
       array('id'=>'someidA','id'=>'somethingA'), 
       array('id'=>'someidB','id'=>'somethingB') 
      ) 

我知道這個工程:

'fields' => array(
        array('id'=>'someid','id'=>'something'), 
        array('id'=>'someid','id'=>'something'), 
        array('id'=>'someid','id'=>'something'), 
        list($a,$b)=config(), 
        $a,$b, 
       ) 

但它並不能幫助我太多,因爲某個時候有很多的$ A,$,$ C,$ d等,所以這將是最好的,如果不知何故功能可以列出這些數組。

是否有一些方法來擺脫該容器數組並直接列出數組到另一個數組?

+0

'array_push($ fields_array,$ A);'那麼多,你需要在你的函數來完成。意味着將數組傳遞給函數,而內部函數將該數組推送到您的原始'fields'數組中。 –

+0

看看http://php.net/manual/en/function.array-merge.php – arkascha

回答

0

array_merge將爲您工作。它將2個或更多數組合併成一個數組。

<?php 

$arr = array(
    'fields' => array(
     array('id1'=>'someid','id2'=>'something'), 
     array('id1'=>'someid','id2'=>'something'), 
     array('id1'=>'someid','id2'=>'something') 
     ) 
     ); 

function config(){ 
    $a = array('id1'=>'someidA','id2'=>'somethingA'); 
    $b = array('id1'=>'someidB','id2'=>'somethingB'); 
    return array($a,$b); 

} 

$config_arr = config(); 
$arr['fields'] = array_merge($arr['fields'], $config_arr); 
print_r($arr); 
?> 

Working Example.

輸出

Array 
(
    [fields] => Array 
     (
      [0] => Array 
       (
        [id1] => someid 
        [id2] => something 
       ) 

      [1] => Array 
       (
        [id1] => someid 
        [id2] => something 
       ) 

      [2] => Array 
       (
        [id1] => someid 
        [id2] => something 
       ) 

      [3] => Array 
       (
        [id1] => someidA 
        [id2] => somethingA 
       ) 

      [4] => Array 
       (
        [id1] => someidB 
        [id2] => somethingB 
       ) 

     ) 

)