Ich mag so wie aus einem SimpleXML Objekt ein Array aufzubauen, soHinzufügen zusätzlicher Daten zu Array
$currentXML = new \SimpleXMLElement($getCurrentXML);
$leadArray = array();
foreach($currentXML->Job->Employee as $object) {
$dataArray[] = array(
'ID' => (string)$object->ID,
'Date Identified' => $dateIdentified,
'Name' => (string)$object->Name,
'Owner' => (string)$object->Owner->Name,
'Value' => (string)$object->EstimatedValue
);
}
Wenn ich geben die Daten für die oben, bekomme ich so etwas wie die perfekt
array:8 [▼
0 => array:7 [▼
"ID" => "1230279"
"Date Identified" => "19/04/2016"
"Name" => "Some Name"
"Owner" => "Some Owner"
"Value" => "Some Value"
]
1 => array:7 [▶]
2 => array:7 [▶]
3 => array:7 [▶]
4 => array:7 [▶]
5 => array:7 [▶]
6 => array:7 [▶]
7 => array:7 [▶]
]
Jetzt innerhalb der obigen foreach-Schleife, muss ich $ object-> ID verwenden, um eine andere API abzufragen. Ich habe SO
foreach($currentXML->Job->Employee as $object) {
$dataArray[] = array(
'ID' => (string)$object->ID,
'Date Identified' => $dateIdentified,
'Name' => (string)$object->Name,
'Owner' => (string)$object->Owner->Name,
'Value' => (string)$object->EstimatedValue
);
$customField = Helper::getCustomFields((string)$object->ID);
$currentFieldsXML = new \SimpleXMLElement($customField);
}
Nun, wenn ich Ausgang currentFieldsXML, manchmal bin ich zurückgekehrt und leer SimpleXMLElement Objekt, manchmal ist es Daten enthält. Was ich versuche zu tun ist, die Daten in das Array neben seinen anderen Daten zu schieben. Also ich habe diese
foreach($currentXML->Job->Employee as $object) {
$dataArray[] = array(
'ID' => (string)$object->ID,
'Date Identified' => $dateIdentified,
'Name' => (string)$object->Name,
'Owner' => (string)$object->Owner->Name,
'Value' => (string)$object->EstimatedValue
);
$customField = Helper::getCustomFields((string)$object->ID);
$currentFieldsXML = new \SimpleXMLElement($customField);
if(!empty($currentFieldsXML->CustomFields)) {
foreach($currentFieldsXML->CustomFields as $custom) {
array_push($dataArray, (string)$custom->CustomField->ID);
array_push($dataArray, (string)$custom->CustomField->Name);
array_push($dataArray, (string)$custom->CustomField->Text);
}
}
}
Das Problem dabei ist, dass die Ausgabe in etwa so
istarray:23 [▼
0 => array:7 [▶]
1 => array:7 [▶]
2 => "122156"
3 => "Some Data"
4 => "Some more Data"
5 => array:7 [▶]
6 => "122156"
7 => "Date"
8 => "20 April"
]
So Element 0 hat keine benutzerdefinierten Felder mit ihr verbunden sind. Element 1 haben Daten haben, aber es ist die Anzeige als Element 2, 3 und 4. Im Wesentlichen die oben soll diese etwa so aussehen
array:8 [▼
0 => array:7 [▶]
1 => array:7 [▼
"ID" => "1230279"
"Date Identified" => "19/04/2016"
"Name" => "Some Name"
"Owner" => "Some Owner"
"Value" => "Some Value"
array:3 [
1 => "122156"
2 => "Some Data"
3 => "Some more Data"
]
]
...
]
Wie kann ich die Daten füge ich in seine sachgemäßen Array zurückgegeben bin wie oben gezeigt?
Dank
UPDATE Sorry, mein Fehler
Es macht nichts, machte ich einen Fehler auf welchem Element ich war die Überprüfung. Danke, deine Antwort funktioniert perfekt. –
Ich habe meine Antwort basierend auf Ihren Änderungen an der Frage bearbeitet, die nun gemäß Ihren Anforderungen funktioniert – Shahrukh