1

私はWufooAPIhttps:// {subdomain} .wufoo.com / api / v3 / forms /{formIdentifier}/entries。{xml|json})を使用して、現在約150のすべてのエントリを取得しようとしています。 、1つのphp配列として。Wufooは、返されるエントリの数を100に制限します。これで、1つの配列に連結/結合したい2つのphp配列ができました。

これまでのコード:

$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);

私が試したがうまくいかなかったこと

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

そしてこのようなもの

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

result1とresult2を連結/結合するにはどうすればよいですか

助けてくれてありがとう

更新:何が機能したか

ベンのおかげで、必要な配列の部分をターゲットにするために配列キーを使用する必要があることに気づきました。

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

1 に答える 1

2

json_decodeの結果には、ルート要素が含まれます(APIによるエントリ)。

$ result1 ['Entries']を介してエントリの配列にアクセスするため、エントリを連結するには、次のような操作を行う必要があります。

$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の結果を返すのではなく出力します)

于 2011-11-02T22:53:53.020 に答える