Учитывая XML в следующем формате
<?xml version="1.0"?>
<table>
<row id="515" employeeId="7">
<field id="startDate">2016-03-28</field>
<field id="rate" currency="USD">15.00</field>
<field id="type">Hourly</field>
<field id="exempt"></field>
<field id="reason"></field>
<field id="comment"></field>
<field id="paidPer">Hour</field>
<field id="paySchedule">Monthly</field>
</row>
<row id="1917" employeeId="7">
<field id="startDate">2017-09-11</field>
<field id="rate" currency="USD">2500.00</field>
<field id="type">Salary</field>
<field id="exempt">Exempt</field>
<field id="reason">Equity Adjustment</field>
<field id="comment">Increase for 2017 performance</field>
<field id="paidPer">PayPeriod</field>
<field id="paySchedule">Every other week</field>
</row>
</table>
$node3 = simplexml_load_string($prates, "SimpleXMLElement", LIBXML_NOCDATA);
foreach($node3->row as $r) {
for($i=0;$i<count($r);$i++) {
var_dump($r->field[$i]["id"][0]);
}
возвращает мой список атрибутов id для моего XML.
Учитывая, что обычный метод кодирования JSON / decode XML не сохранить атрибуты, и в конечном итоге мне нужен массив, который выглядит как
$ rate [0] [first id] => значение этого поля
$ rate [0] [second id ] => значение этого поля
и, если в XML
$ норм есть вторая строка [1] [первый идентификатор] => значение этого поля
et c, чтобы я мог затем отсортировать массив по startDates, чтобы найти самую последнюю строку. Есть ли более простой способ сделать это? Я чувствую, что слишком долго на это смотрю ...