[英]foreach loop stops after first iteration
尝试从xml文件中提取ID,将其传递到api查询,然后将结果加载到dom文档中。 我的foreach
循环只返回第一个迭代,然后似乎停止了。
为什么不回去取下一个PROGRAM_ID
?
//load results of first api call into simplexml - print_r here gives me a big array with all the expected rows in it
$progsitecontent = simplexml_load_file($progsiteapi);
//set which nodes to step through to reach required information
$totalprogsitecontent = $progsitecontent->matrix->rows->row;
//for each instance of a program id in this simplexml file:
foreach($totalprogsitecontent->PROGRAM_ID as $progid)
{
//...substitute the program id into the api call
$programdetails = $progdetailsapi_start.$progid.$progdetailsapi_end;
$complete_program_details = simplexml_load_file($programdetails);
//now for each instance of a programs info, load into a DOM document and carry out the below actions - from here down already works in another script so im sure the problem has to be above this point
$prog_info = $complete_program_details->matrix->rows->row;
//create the top line container tag
$row = $doc->createElement ("programInformation");
//create the container tag
$progID = $doc->createElement("programId");
//fill it with the information you want
$progID->appendChild ( $doc->createTextNode ( $prog_info->PROGRAM_ID ) );
//attach this information to the row
$row->appendChild($progID);
//repeat for each element you want to include
$progName = $doc->createElement("programName");
$progName->appendChild ( $doc->createTextNode ( $prog_info->PROGRAM_NAME ) );
$row->appendChild($progName);
$progURLs = $doc->createElement("programUrls");
$progURLs->appendChild ( $doc->createTextNode ( $prog_info->PROGRAM_URLS ) );
$row->appendChild($progURLs);
$progLogo = $doc->createElement("programLogo");
$progLogo->appendChild ( $doc->createTextNode ( $prog_info->MERCHANT_LOGO ) );
$row->appendChild($progLogo);
$r->appendChild ($row);
}
echo $doc->saveXML();
随意评论其中的任何内容。 我仍处于“看得见风景”的阶段:)
不能多说$totalprogsitecontent
的完整结果,但我认为它应该看起来像这样:
foreach($totalprogsitecontent as $progid)
{
...
}
由于$totalprogsitecontent->PROGRAM_ID
已经是单个值-因此您要遍历此元素而不是数组。
同样, $progid
在for循环中是小写字母,但是您引用$progID
- PHP区分大小写。
看完您的XML代码后,它应该是这样。
foreach($progsitecontent->matrix->rows->row as $row){
$progid = $row['PROGRAM_ID'];
$affid = $row['AFFILIATE_ID'];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.