루핑하는 동안 반환 할 수없는 이유는 무엇입니까? 왜 나는 루핑없이 1 개의 결과를 얻었 을까요? 여기 내 코드는 다음과 같습니다.루핑 할 때 반환 할 수 없습니다.
function search($get){
$i=0;
//print_r($get);
foreach($get->itemlist as $song){
$i++;
$ch = curl_init('');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, 'wmid=14997771; user_type=2; country=id; session_key=96870dd03ab9280c905566cad439c904;');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36');
$json = curl_exec($ch);
$json = str_replace('MusicInfoCallback(', '', $json);
$json = str_replace(')', '', $json);
$json = json_decode($json);
$songurl = $json->mp3Url;
//print_r($json);
return array($i => array("song" => $json->msong,
"singer" => $json->msinger,
"url" => $song->songid));
}
}
print_r(search("key"));
어떤 대안이 있습니까?
'foreach' 루프에서 배열을 반환하고 있습니다. 'foreach' 밖에서 새로운 변수를 할당 한 다음 루프 내에서 데이터를 설정 한 다음'foreach' 외부에서 지정된 변수를 반환하십시오 – eeya
또한 json 데이터에서'str_replace()'를 수행하지 않는 것이 좋습니다. 이로 인해 실수로 데이터가 손상 될 수 있습니다. 'json_decode()'의 경우 우선 키와 값을 처리하는 편이 낫다. 디코딩 전에이 문자열 조작이 필요한 경우 다른 기능/프로세스를 사용하십시오. – mickmackusa