0

どうやら問題があります。私はForeachLoopsManualを読んでいて、どうやら1つのループで、次のような配列からのすべての曲が必要です。

$music = array(
    'Creed' => array(
        'Human Clay' => array(
            array(
                'title' => 'Are You Ready'
            ),
            array(
                'title' => 'What If'
            ),
            array(
                'title' => 'Beautiful'
            ),
            array(
                'title' => 'Say I'
            ),
            array(
                'title' => 'Wrong Way'
            ),
            array(
                'title' => 'Faceless Man'
            ),
            array(
                'title' => 'Never Die'
            ),
            array(
                'title' => 'With Arms Wide pen'
            ),
            array(
                'title' => 'Higher'
            ),
            array(
                'title' => 'Was Away Those Years'
            ),
            array(
                'title' => 'Inside Us All'
            ),
            array(
                'title' => 'Track 12'
            ),
        ),
    ),
)

私がこれまでに持っているのは:

foreach($music['Creed']['Human Clay'] as $song){
   var_dump($song);
}

問題は、$songが配列であるということです。これを1つのループで実行する必要があります。これは可能ですか?

4

3 に答える 3

5

はい!

foreach($music['Creed']['Human Clay'] as $song){
   echo $song['title'];
}

フィドル: http: //phpfiddle.org/main/code/rek-bcn

于 2012-12-31T17:25:31.327 に答える
0
function getSongsList($arr, $album){
 $length = count($arr['Creed'][$album]);
 $result = array();
 for ($i = 0; $i < $length; $i++){
  $result[$i] = $arr['Creed'][$album][$i]['title'];
 }
 return $result;
}

//Usage

print_r(getSongsList($music, 'Human Clay'));
于 2012-12-31T21:25:07.410 に答える
0

array_walk_recursiveたとえば、各セクションの深さがわからない場合に利用することもできます。

$songs = [];    
array_walk_recursive($music, function($v) use (&$songs) {$songs[] = $v;});
print_r($songs);
于 2012-12-31T17:46:06.630 に答える