Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP foreach xml列出所有事件_Php_Xml_Foreach - Fatal编程技术网

PHP foreach xml列出所有事件

PHP foreach xml列出所有事件,php,xml,foreach,Php,Xml,Foreach,对PHP和编码不熟悉,所以请对我放松:) 我有以下XML数组 SimpleXMLElement Object ( [Envelope] => Array ( [0] => SimpleXMLElement Object ( [ID] => 387e1295-5b5d-4943-8236-ddb62bfefc54 [Re

对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=447777的每个信封分配给它自己的变量

我有以下内容将拉第一个信封,但我希望所有信封匹配接收器=447777

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[]
应该就可以了。哇,太快了感谢Cadu De Castro AlvesOne的快速提问,我现在如何将$msg数组分配给它自己的变量这会是另一个foreach吗?不客气!好的,一旦你可能不知道需要多少变量,我想你可以使用$msg中存储的值。还是我遗漏了什么?$msg应该是一个数组,这样您就可以存储所有匹配的条件。将
$msg
更改为
$msg[]
应该就可以了。哇,太快了感谢Cadu De Castro AlvesOne的快速提问,我现在如何将$msg数组分配给它自己的变量这会是另一个foreach吗?不客气!好的,一旦你可能不知道需要多少变量,我想你可以使用$msg中存储的值。还是我错过了什么?
You can define an empty array and push all data to that array if matched.Here is 
the code below.
`$arr = [];
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), 
      );
      array_push($arr, $msg);
  }
}`