ВШ
Владимир Шабаров

Как сделать цикл с многомерным массивом?

Вот собственно сам массив:

array(1) {

["response"]=>

array(4) {

[0]=>

int(1501347)

[1]=>

array(8) {

["aid"]=>

int(92960819)

["owner_id"]=>

int(17163345)

["artist"]=>

string(6) "Eminem"

["title"]=>

string(36) "Love the Way You Lie (feat. Rihanna)"

["duration"]=>

int(263)

["url"]=>

string(144) "http://site/34564567.mp3"

["lyrics_id"]=>

string(7) "5087390"

["genre"]=>

int(18)

}

[2]=>

array(9) {

["aid"]=>

int(62771866)

["owner_id"]=>

int(3453036)

["artist"]=>

string(16) "Eminem ft. Akon "

["title"]=>

string(11) "Smack That "

["duration"]=>

int(217)

["url"]=>

string(143) "http://site/898767.mp3"

["lyrics_id"]=>

string(7) "1943100"

["album"]=>

string(6) "646199"

["genre"]=>

int(3)

}

[3]=>

array(8) {

["aid"]=>

int(222463345)

["owner_id"]=>

int(16085888)

["artist"]=>

string(6) "Eminem"

["title"]=>

string(8) "Survival"

["duration"]=>

int(272)

["url"]=>

string(147) "http://site/48909867.mp3"

["lyrics_id"]=>

string(9) "110358312"

["genre"]=>

int(3)

}

}

}

Желательно с примером, стопарнулся вот на таком цикле:

foreach($result as $response)

{

foreach($response as $key => $value)

{

$time = $duration;

$watch = date('i:s', $time);

$arr = array

(

'aid' => $aid,

'owner_id' => $owner_id,

'artist' => $artist,

'title' => $title,

'duration' => $watch,

'url' => $url,

'lyrics_id' => $lyrics_id,

'genre' => $genre

);

}

}

Сан Саныч
Сан Саныч

Мне лениво разбираться в твоем растянутом на пять экранов массиве (в следующий раз выкладывай сериализованный массив - он компактнее) , но в таких случаях выгодно использовать рекурсию. Примерно так:

/* это твой массив с данными */
$array = array( /* данные */ );

/* необходимые параметры */
$parametres = array('aid', 'owner_id', 'artist', 'title', 'duration', 'url', 'lyrics_id', 'genre');

$result = array();
parseArray($array);
var_dump($result);

function parseArray($array){
global $result;
foreach($array as $k => $v){
if( is_array($v) ) parseArray($v);
elseif( in_array($k, $parametres) ) $result[$k] = $v;
}
}

Похожие вопросы
PHP: Как поменять местами вложенность многомерного массива?
Вывод элементов многомерных массивов в компоненты ShowMessage, Memo. (Delphi)
как с циклом foreach и многомерного массива сделать 10 пронумерованных строк с числами от 1 до 10
Где можно посмотреть задачи на циклы и массивы (C++)
Решите задачу в паскале через циклы, а не через массивы пожалуйста :)
Задачи на одномерные и многомерные массивы
Программа Си, многомерные массивы буду очень благодарна)
блин с этими рваными многомерными массивами в си шарп фиг разберёшься.
вот блин как инициализируется массив массивов с многомерными массивами. а вы? ! ээх выыыы
Конкатенация элементов многомерного массива php