【问题标题】:foreach loop is echoing the results of the first submissionforeach 循环正在回显第一次提交的结果
【发布时间】:2020-12-05 22:50:37
【问题描述】:

我正在处理来自 Formstack 的 REST API 的数据。一切都是 XML 格式。我写了一些 PHP 来处理它,由于某种原因,当我在 foreach 循环中回显 $valueVar 时,只有第一个条目的值会为三个条目中的每一个返回。我真的不知道为什么字符串没有被替换。有人可以解释一下我做错了什么。

谢谢!

PHP Output

Formstack API XML Output

foreach($xml->submissions->submission as $submission) {
    foreach($xml->submissions->submission->data->XML_Serializer_Tag as $serializer) {
        $fieldeVar = (string)$serializer->field;
        $valueVar = (string)$serializer->value;
        if ($fieldeVar=="95733876") {
            echo $valueVar;
            break;
        }
    }
}

【问题讨论】:

标签: php xml rest


【解决方案1】:

我认为这是您的 2 个循环相互冲突的简单案例。请注意您如何将内部循环定义为foreach($xml->submissions->submission->...。那将始终抓住第一个实例。它应该使用您的外部循环为您设置的$submission

只是改变

foreach($xml->submissions->submission as $submission) {
    foreach($xml->submissions->submission->data->XML_Serializer_Tag as $serializer) {

到这里

foreach ($xml->submissions->submission as $submission) {
    foreach ($submission->data->XML_Serializer_Tag as $serializer) {

输出

前缀 = Dr first = Argnes last = Acmefirst = Bobby last = Leamalotfirst = Tina last = 学生

【讨论】:

  • 马特效果很好。总是让我们发疯的小事。非常感谢..!
猜你喜欢
  • 1970-01-01
  • 2019-10-30
  • 1970-01-01
  • 1970-01-01
  • 2017-03-10
  • 1970-01-01
  • 2017-10-16
  • 2014-05-27
  • 2021-09-24
相关资源
最近更新 更多