2015-01-04 4 views
0

내 컨트롤러의 API에서 데이터를 검색하는 데 루프를 사용하는 데 laravel을 사용하고 있습니다. 모든 것이 올바르게 작동하지만 루프의 어떤 이유로 인해 var_dump 데이터가 있으면 거기에 있어야합니다. 내 루프 외부에서 데이터를 내보기로 전달하면 작동하지 않습니다.foreach 루프는 루프 외부의 마지막 항목 만 표시합니다.

api 요청을 실행하고 나서 내 응답을 받으면 원래 응답 각각에 대해 보조 API 요청을 실행하고 있습니다. 여기에 문제가있는 코드의 일부입니다. 그 이유의 끝에도, 그래서

$placesearchresults[] = json_decode(file_get_contents($getplacedetails)); 

때문에 현재의 코드는 $placesearchresults마다의 값을 덮어 쓰기에 :

$placesearchresults = json_decode(file_get_contents($getplacedetails)); 

에 :

foreach(array_slice($nearbysearchresults->results, 0, 5) as $result) // slicing array to limit requests 
    { 
     $getplacedetails ="https://maps.googleapis.com/maps/api/place/details/json?placeid=". $result->place_id ."&key=XXXX"; 
     $placesearchresults = json_decode(file_get_contents($getplacedetails)); 

var_dump($placesearchresults); // shows all 5 results 

} 

var_dump($placesearchresults); // shows all 1 result (outside loop). 
+4

'$ placesearchresults'를'$ placesearchresults []'로 변경하십시오. 당신을 속이는가? – Rizier123

+0

그게 전부 였어! $ placesearchresults [] = json_decode (file_get_contents ($ getplacedetails)); 대단히 감사합니다! 이유를 알아낼 수 없었다! – user1529597

+0

답변을 작성하고 진행 상황을 조금 더 설명했습니다! 희망은 당신과 내가 무엇을 바꿀지 이해하는 데 도움이되기를 바랍니다. (BTW : 가장 도움이 된 답변을 수락하여 문제를 해결할 수 있습니다.) ( – Rizier123

답변

2

당신은 변경해야 루프 (바깥 쪽)에는 1 개의 결과 만 있습니다. 따라서 루프 외부의 모든 값을 얻으려면 $placesearchresults 배열을 만들고 배열에 []의 모든 값을 추가하십시오.

또한 읽을 거리가 있습니다. D '대괄호 구문으로 만들기/수정하기'를 참조하십시오. 'http://php.net/manual/en/language.types.array.php

그리고 그 중 작은 따옴표 :

기존의 배열이 명시 적으로 값을 설정하여 수정할 수 있습니다.

대괄호로 묶은 키를 지정하여 배열에 값을 할당하면됩니다. 키를 생략해도 대괄호 ([])가 비어 있습니다.

$arr[key] = value; 
$arr[] = value; 
// key may be an integer or string 
// value may be any value of any type 

$의 편곡이 아직 존재하지 않는 경우

, 그것은 생성됩니다, 그래서 이것은 또한 배열을 만들 수있는 또 다른 방법이다. 그러나 $ arr에 이미 값 (예 : 요청 변수의 문자열)이 있으면이 값은 그대로 유지되고 []는 실제로 문자열 액세스 연산자를 나타낼 수 있기 때문에이 방법은 권장하지 않습니다. 직접 할당을 통해 변수를 초기화하는 것이 항상 좋습니다.

+0

) 저에게 설명 해주셔서 대단히 감사드립니다. :) – user1529597

+0

@ user1529597 You ' 다시 오신 것을 환영합니다! 좋은 하루 보내세요 : D – Rizier123

관련 문제