2011-11-02 3 views
1

저는 Wufoo api (https://{subdomain}.wufoo.com/api/v3/forms/{formIdentifier}/entries.{xml|json})와 협력하여 현재 약 150 편의 모든 항목을 하나의 PHP 배열로 가져오고 있습니다. Wufoo는 반환 된 항목의 수를 100으로 제한합니다. 이제는 하나의 배열로 결합/결합하려는 두 개의 PHP 배열이 있습니다. 지금까지Wufoo API 결과 연결하기

강령 : 나는 시도하고이

$all_results = $result1; 
$all_results += $result2; 

어떻게 같은

$all_results = array_merge($result1, $result2); 

뭔가를 일하지 않은 무엇

$api_uri_1 = "https://example.wufoo.com/api/v3/forms/example-form/entries.json?pageStart=0&pageSize=100"; 
$api_uri_2 = "https://example.wufoo.com/api/v3/forms/example-form/entries.json?pageStart=1&pageSize=100"; 

function wufoo_api($api_uri) { 
    $curl = curl_init($api_uri); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_USERPWD, 'WUFOO-API-KEY-HERE:password'); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); 
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_USERAGENT, 'Wufoo Sample Code'); 
    $response = curl_exec($curl); 
    $resultStatus = curl_getinfo($curl); 

    if ($resultStatus['http_code'] == 200) { 
     $results = json_decode($response, true); 
     return $results; 
    } else { 
     $results = 'Call Failed '.print_r($resultStatus); 
     return $results; 
    } 
} 

$result1 = wufoo_api($api_uri_1); 
$result2 = wufoo_api($api_uri_2); 

캘리포니아 나는이 부분을 대상으로 배열 키를 사용하는 데 필요한 실현 Ben

감사했다 무엇 : N I은 /는

업데이트 사전에 어떤 도움 결과 1과 result2

감사를 결합 연결할 내가 필요로하는 배열.

$all_results = array_merge($result1['Entries'],$result2['Entries']); 
+0

내 대답에있는 의견을 참조하십시오. 사용자의 업데이트가 적절하지 않다고 생각합니다. – Ben

+0

고마워요. Ben. – michaelespinosa

답변

2

json_decode의 결과에는 루트 요소 (api에 따른 항목)가 포함됩니다.

당신은 항목을 연결하는, 그래서 $의 결과 1 [ '항목']를 통해 항목의 배열에 액세스 할

, 당신은해야 할 것 같은 뭔가 :

$all_results = array_merge($result1['Entries'],$result2['Entries']); 

또는

$all_results = $result1['Entries']; 
$all_results += $result2['Entries']; 

또한

페일 경우, 그것은되어야

$results = 'Call Failed '.print_r($resultStatus,true); 

(그렇지 않으면 결과를 반환하지 않고 print_r 결과를 출력 함)

+0

감사합니다! ** 필수 변수는 내 변수에'[ 'Entries']'를 붙이는 것입니다. 결국'array_push ($ result1 [ 'Entries'], $ result2 [ 'Entries'] [0]); '다시 한 번 감사드립니다! – michaelespinosa

+0

@michaelespinosa'array_push ($ result1 [ 'Entries'], $ result2 [ 'Entries'] [0])'는 $ result2의 _first_ 항목을 $ result1의 항목에만 추가합니다. 해야 할 – Ben

+0

귀하의 절대적으로 맞습니다. 감사 – michaelespinosa