【发布时间】:2020-05-21 14:51:33
【问题描述】:
PHP 和编码新手,所以请放轻松 :)
我有以下 XML 数组
SimpleXMLElement Object
(
[Envelope] => Array
(
[0] => SimpleXMLElement Object
(
[ID] => 387e1295-5b5d-4943-8236-ddb62bfefc54
[Receiver] => 447777777777
[Message] => Coltest out going 1
[SentTime] => 2020-02-05 12:57:06
)
[1] => SimpleXMLElement Object
(
[ID] => 0dab3015-5e30-477e-ba22-6660fd580010
[Receiver] => 447777777777
[Message] => coltest outgoing 2
[SentTime] => 2020-02-05 12:57:20
)
[2] => SimpleXMLElement Object
(
[ID] => ac7e6ce9-c629-4ce3-b3e2-fb00695747b0
[Receiver] => 447766666666
[Message] => just a test please ignore
[SentTime] => 2020-02-05 13:17:25
)
)
)
我想将 Receiver= 447777777777 的每个信封分配给它自己的变量
我有以下内容可以拉出第一个信封,但我想要所有匹配 Receiver= 447777777777 的信封
foreach($xml->Envelope as $item) {
if(trim($item->Receiver) == $sender) {
$msg = array(
'ID' => trim($item->ID),
'Receiver' => trim($item->Receiver),
'Message' => trim($item->Message),
'SentTime' => trim($item->SentTime),
);
}
}
【问题讨论】:
-
$msg 应该是一个数组,以便您可以存储所有匹配的条件。将
$msg更改为$msg[]应该可以解决问题。 -
哇,真快! - 感谢卡杜德卡斯特罗阿尔维斯
-
一个简单的问题,我现在如何将 $msg 的数组分配给它自己的变量? - 这会是另一个 foreach 吗?
-
不客气!
-
好吧,一旦你可能不知道需要多少个变量,我想你可以直接使用 $msg 中存储的值。还是我错过了什么?