私の配列に値を設定する際に問題が発生しています。私はいくつかのIDを含む1列を持つCSVファイルを持っています。私はロードし、csvファイルを処理し、そう連想配列にデータを追加する
array:5 [▼
0 => array:2 [▼
0 => "ID123"
]
1 => array:2 [▼
0 => "ID234"
]
2 => array:2 [▼
0 => "ID345"
]
3 => array:2 [▼
0 => "ID456"
]
4 => array:2 [▼
0 => "ID567"
]
]
そのIDに固有のデータを取得するために、IDに、私はAPIを打つこれらのIDを使用してのような配列で終わります。だから私のループ配列は、IDを含むとI出力出力の結果は、私はだから私は、アレイを構築する必要があり、この
SimpleXMLElement {#352 ▼
+"Job": SimpleXMLElement {#383 ▼
+"ID": "ID123"
+"Client": SimpleXMLElement {#387 ▼
+"ID": "12345"
}
+"Assigned": SimpleXMLElement {#392 ▼
+"Staff": array:5 [▼
0 => SimpleXMLElement {#403 ▼
+"ID": "12345"
}
1 => SimpleXMLElement {#404 ▼
+"ID": "23456"
}
2 => SimpleXMLElement {#405 ▼
+"ID": "34567"
}
]
}
}
}
のようなものを取得する場合、次の
今$jobData = array();
foreach($csv as $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.somdomain/some.api/get/".$data[0].");
//other curl stuff
$output = curl_exec($ch);
$output = new \SimpleXMLElement($output);
}
ような何かを行います私が持っているすべてのIDのデータを含んでいます。私はこの
foreach($csv as $data) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.somdomain/some.api/get/".$data[0].");
//other curl stuff
$output = curl_exec($ch);
$output = new \SimpleXMLElement($output);
if (!empty($output)) {
$jData['jobInfo'] = array(
'clientId' => (string)$output->Job->Client->ID,
'startDate' => '20160701',
'dueDate' => '20160731'
);
if(!empty($output->Job->Assigned->Staff)) {
foreach ($output->Job->Assigned->Staff as $staff) {
$jData['staffInfo'][] = array(
'staffId' => (string)$staff->ID
);
}
}
}
$jobData[] = $jData;
}
ようなものをやっている上に、foreachループ内だから今は、このポイントに動作します。上記の出力が示すようにスタッフが2人以上いる可能性があるので、staffInfo要素に余分な[]を追加しました。私が上記の を持っている問題は、それがいくつかのものを複製するようだということです。したがって、jobData配列の出力は次のようになります
array:5 [▼
0 => array:4 [▼
"jobInfo" => array:4 [▶]
"staffInfo" => array:5 [▶]
]
1 => array:4 [▼
"jobInfo" => array:4 [▶]
"staffInfo" => array:6 [▶]
]
2 => array:4 [▼
"jobInfo" => array:4 [▶]
"staffInfo" => array:7 [▶]
]
3 => array:4 [▼
"jobInfo" => array:4 [▶]
"staffInfo" => array:8 [▶]
]
4 => array:4 [▼
"jobInfo" => array:4 [▶]
"staffInfo" => array:15 [▶]
]
]
ご覧のとおり、要素0にはstaffInfoのサイズが5の配列があります。要素1は6に、要素2は7に、要素3は8に、要素4は15になります。システムが手動でAPIが呼び出されている場合、 要素0には5が正しくなければなりません。要素1には1、要素2には1、要素3には1、要素4には7が必要です。
したがって、前回のループ結果を次の結果に追加するのをやめますか?
おかげで
次の行: 'curl_setopt($ ch、CURLOPT_URL、" https://api.somdomain/some.api/get/ "。$ data [0]。"); 'は構文エラーです。 –
投稿されたものを減らすためにコードを削除して申し訳ありませんでした –