0
잘되지 않는 기능은 다음과 같습니다.PHP에서 XML을 함께 추가하는 방법
$attendXml = "";
for ($i=0;$i<count($attendData);$i++) {
$attendXml += assocArrayToXML('row',$attendData[$i]);
}
잘못 쓰었지 만 내가 뭘 하려는지 생각해 봅니다. 코드는 다음 프로그램에서 나옵니다. organXml 검색은 정상적으로 작동하지만 문제는 문제의 배열 (연관 없음)이 여러 개 포함 된 배열 (연관 없음)에서 발생합니다.
각각의 연관 배열의 XML을 '행'으로 구분 된 하나의 XML로 병합하는 방법
function assocArrayToXML($root_element_name,$ar)
{
$xml = new SimpleXMLElement("<?xml version=\"1.0\"?><{$root_element_name}> </{$root_element_name}>");
$f = create_function('$f,$c,$a','
foreach($a as $k=>$v) {
if(is_array($v)) {
$ch=$c->addChild($k);
$f($f,$ch,$v);
} else {
$c->addChild($k,$v);
}
}');
$f($f,$xml,$ar);
return $xml->asXML();
}
// Include Libraries
include('services\OrganisationService.php');
include('services\AttendeeService.php');
// Target Organisation
$organ_id = 1;
// Read Organisation Data
$organServ = new OrganisationService();
$organData = $organServ->getOrganisationByID($organ_id);
$organXml = assocArrayToXML('organisation',$organData);
// Read Attendees Data (For Organisation)
$attendServ = new AttendeeService();
$attendData = $attendServ->getAllActiveAttendeeByOrg($organ_id);
$attendXml = "";
for ($i=0;$i<count($attendData);$i++) {
$attendXml += assocArrayToXML('row',$attendData[$i]);
}
//var_dump($attendData);
header ("Content-Type:text/xml");
echo $attendXml;
?>
사용중인 PHP의 버전을 알 수는 없지만 5.3 이상인 경우'create_function'보다는 람다/익명 함수를 사용해야합니다 http://php.net/manual/en/functions.anonymous .php – Endophage