Вернуть конкретные результаты из массива

0

Я пытаюсь вернуть данные хранилища iTunes, которые мне удалось сделать успешно.

Я нашел это: https://github.com/ijanerik/PHP-iTunes-API, это здорово!

Единственное, что я не уверен в том, как печатать отдельные значения.

Например, мой код выглядит так:

include("classes/itunes.php");

$albums = iTunes::lookup(304576306, 'id', array(
    'entity' => 'song'
))->results;

// var_dump($albums);
print_r($albums);

Который возвращает все результаты: http://joshrodg.com/music/test/index.php.

Как мне вернуть только имя trackName или artistName из массива?

В этом примере показано, как выполнить поиск, а не как получить отдельные данные, которые будут возвращены.

Я пробовал foreach, но, возможно, я делаю это неправильно:

foreach($albums as $album):
    echo $album['trackName'];
    echo $album['artistName'];
endforeach;

Каждый раз, когда я пытаюсь это сделать, страницы whitescreens.

Если я просто попробую echo $album['trackName']; или echo $albums['trackName']; страница также whitescreens.

Пока единственный способ вернуть данные - использовать: print_r($albums); или var_dump($albums);

Я знаю, что это просто, просто не уверен, что мне здесь не хватает.

  • 0
    Узнайте, что такое объект и в чем разница между объектом и массивом.
Теги:
arrays
itunes

2 ответа

0
Лучший ответ

Попробуй это:

    foreach ($albums as $a) {
        if ($a->wrapperType == 'track') { 
            echo $a->trackName;
            echo $a->artistName;
        }            
    }
  • 0
    Этот работает хорошо ... все еще должен работать на форматирование и все, но теперь я могу вернуть результаты, которые я ищу :-)
  • 0
    Рад, что помогло: D
0

Он возвращает результаты как объект, а не массив. Попробуйте запустить их следующим образом:

foreach($albums as $album):
{
    echo $album->trackName;
    echo $album->artistName;
}
  • 0
    Пробовал этот, только что получил белый экран.
  • 0
    Вам нужно display_errors чтобы вы могли прочитать сообщение об ошибке. Вероятно, это ошибка, потому что одно из этих имен свойств существует не для всех объектов. Ответ Уолдсона работает, потому что он написал в функциональности, чтобы проверить это.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню