Мне нужно сбросить один из объектов платежей, но с помощью кода, который я использую, я не могу заставить его работать правильно, потому что $k
- это не фактический ключ итерации, это имя объекта Payment
.
Как получить числовой ключ итерации?
// var_dump of object
object(add_nodes)#14 (1) {
["Payments"]=>
object(add_nodes)#15 (1) {
["Payment"]=>
array(2) {
[0]=>
object(add_nodes)#18 (5) {
["PaymentStatus"]=>
string(9) "Succeeded"
["Payer"]=>
string(10) "podve"
["Payee"]=>
string(11) "PitneyBowes"
["PaymentTime"]=>
string(24) "2018-11-09T09:18:27.000Z"
["PaymentAmount"]=>
string(5) "47.73"
}
[1]=>
object(add_nodes)#19 (7) {
["PaymentStatus"]=>
string(9) "Succeeded"
["Payer"]=>
string(10) "podve"
["Payee"]=>
string(14) "jannesmith"
["PaymentTime"]=>
string(24) "2018-11-09T09:18:27.000Z"
["PaymentAmount"]=>
string(6) "102.99"
["ReferenceID"]=>
string(17) "09273450972340987534"
["FeeOrCreditAmount"]=>
string(4) "4.21"
}
}
}
}
код:
$xml = simplexml_load_string($response, 'add_nodes');
$payments = $obj->Payments;
if(count($payments->Payment) > 1 ) {
foreach($payments->Payment as $k => $v) {
echo $k; // This = Payment, not 0 or 1
if($v->Payee != 'jannesmith') {
unset($payments->Payment[$k]);
}
}
}