Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从lastfmapi返回json_Php_Json_Last.fm - Fatal编程技术网

Php 从lastfmapi返回json

Php 从lastfmapi返回json,php,json,last.fm,Php,Json,Last.fm,因此,我试图创建一个jquery/ajax自动完成表单,它使用last.fm api自动完成用户键入的歌曲标题,我遇到的问题是,我似乎无法以正确的json格式返回最后的fm数据。这是我的jquery插件()希望返回的格式: { "suggestions": [ { "value": "United Arab Emirates", "data": "AE" }, { "value": "United Kingdom", "data": "UK"

因此,我试图创建一个jquery/ajax自动完成表单,它使用last.fm api自动完成用户键入的歌曲标题,我遇到的问题是,我似乎无法以正确的json格式返回最后的fm数据。这是我的jquery插件()希望返回的格式:

{
    "suggestions": [
        { "value": "United Arab Emirates", "data": "AE" },
        { "value": "United Kingdom",       "data": "UK" },
        { "value": "United States",        "data": "US" }
    ]
}
下面是我在php脚本中所做的基本操作,它将json返回给autocomplete插件:

                $titleName = "what's my age";
                $limit = 1;
                $results = Track::search($titleName, $limit);
                print_array($results);
                echo "<ul>";
                while ($title = $results->current()) {
                    echo $limit;
                    echo "<li><div>";
                    echo "Artist: " . $title->getArtist() . "<br>";
                    echo "Album: " . $title->getAlbum() . "<br>";
                    echo "Duration: " . $title->getDuration() . "<br>";
                    echo "getWiki: " . $title->getWiki() . "<br>";
                    echo "name: " . $title->getName() . "<br>";
                    echo "</div></li>";
                    $jsonArray['suggestions'] = array('Name'.$limit => $title->getName(), 'Artist'.$limit => $title->getArtist());
                    $limit++;
                    $title = $results->next();
                }
                echo "</ul>";
                print_array($jsonArray);
                echo json_encode($jsonArray);
这就是返回的内容(通过回波测试):

因此,我知道代码工作正常,sdk自动完成等也正常。我还知道,每次循环通过时,我都会删除while循环中的数组,我还没有解决这个问题,但撇开这个问题不谈,json没有以请求的格式返回,我似乎找不到正确的方法来构造数组,以获得正确的格式,有什么想法吗

$suggestionsArr['suggestions'] = [];

foreach (range(1,3) as $key => $value) {
    array_push($suggestionsArr['suggestions'], ['name' => 'Song1', 'artist' => 'Artist1']);
}

echo json_encode($suggestionsArr);
1
Artist: Blink 1-82
Album: 
Duration: 0
getWiki: 
name: What's My Age Again?
2
Artist: Dj Tech1
Album: 
Duration: 0
getWiki: 
name: Blink vs. Jay-Z - what's my age again
$suggestionsArr['suggestions'] = [];

foreach (range(1,3) as $key => $value) {
    array_push($suggestionsArr['suggestions'], ['name' => 'Song1', 'artist' => 'Artist1']);
}

echo json_encode($suggestionsArr);