Получить информацию из файла JSON и превратить его в строку PHP

Я хочу соединиться с последним API fm и получить информацию из файла JSON.

Файл примера: [Последний JSON-файл FM API] [1]

в моем php-файле я получаю правильную информацию через этот код:

<?$get = file_get_contents('http://ws.audioscrobbler.com/2.0/?
method=artist.getinfo&artist=Ed
Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json');
$get = json_decode($get);
foreach($get->artist->tags->tag as $tags) { $thetag = (array) $thetag;?>
<? echo $thetag['name'];?>
<?} ?>

На данный момент это будет повторять каждый отдельный тег для этого исполнителя, например: легкое прослушивание и грязь

Что мне интересно, есть ли способ создать строку, содержащую $ thetag, а также поставить запятую между ними?

$newstring = "easy listening, grime"

так далее

Мой план состоит в том, чтобы создать строку и затем использовать php-код для поиска в моей базе данных и отображения записей, где столбец тегов содержит любой из этих тегов. Есть идеи, как это возможно?

[1]: http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&художник = Ed Ширан&api_key = 63692beaaf8ba794a541bca291234cd3&Формат = JSON

0

Решение

Это проверено и работает и является одним из нескольких возможных методов …

<?php
$song_list_json = file_get_contents('http://ws.audioscrobbler.com/2.0/?method=artist.getinfo&artist=Ed Sheeran&api_key=63692beaaf8ba794a541bca291234cd3&format=json');
$song_list = json_decode($song_list_json);

$name_tags = array();
foreach ($song_list->artist->tags->tag as $tags) {
$name_tags[] = $tags->name;
}
$song_names = implode(', ',$name_tags);

// Do something with it...
echo $song_names;
0

Другие решения

Вы можете проанализировать строку JSON как массив. Тогда используйте array_map функция для перебора $array['artist']['tags']['tag'] массив, чтобы получить только name ценности.

// $json contains JSON string from API response to ws.audioscrobbler.com.
$array = json_decode($json, true);
$tags = '';

if (!empty($array['artist']['tags']['tag'])) {
$tags = array_map(
function($tag) {
return isset($tag['name']) ? $tag['name'] : '';
}, $array['artist']['tags']['tag']);
$tags = implode(', ', $tags);
}
0

По вопросам рекламы [email protected]