2016-07-27 5 views
1

私はこのような配列があります。取得配列の値

array(2) { 
    [0]=> 
    array(1) { 
    [0]=> 
    object(Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter)#13 (2) { 
     ["name":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(2) "name1" 
     ["value":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(2) "30" 
    } 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    object(Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter)#12 (2) { 
     ["name":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(2) "name2" 
     ["value":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(6) "289213" 
    } 
    [1]=> 
    object(Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter)#15 (2) { 
     ["name":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(6) "name3" 
     ["value":"Bas\WWW\Router\Route\URIs\URI\Parameters\Parameter\Parameter":private]=> 
     string(5) "00123" 
    } 
    } 
} 

をそして私は、内部配列のキーの値であり、その中のすべてのオブジェクトを取得したいです。

私のアプローチは、最初の外側の値をループし、内側の値をループし、それらを別々の配列に配置することでした。

$a = []; 
foreach ($parameters as $parameter) { 
    foreach ($parameter as $data) { 
     $a[] = $data; 
    } 
} 

両方の配列をループする代わりに、これを行うより良い方法はありますか?

+0

は本当にあなたのすべてです2次元配列を1次元配列に平坦化して、繰り返し処理することができますか? –

+0

@JeffLambertそれは優先度の高いものではありませんが、私はちょうどええと思っていました。 – Bas

答えて

2

簡単な解決策はarray_mergeへの引数のリストとしてあなたの配列を処理し、あなたのsub_arraysをマージです:array_walk_recursive機能使用

$a = call_user_func_array('array_merge', $parameters); 
+0

あなたはループ内か、それともすぐ外か? – Bas

+0

それはループの__instead__です –

+0

これは理解しにくいですが、これで多くのクリーナーがありがとう! – Bas