【问题标题】:For loop for outputting array in PHP cURL用于在 PHP cURL 中输出数组的 For 循环
【发布时间】:2021-12-08 13:32:00
【问题描述】:

我有类似的 XML

<user>
 <researcher>
  <researcher_keywords>
    <researcher_keyword>
        <value>Value A</value>
    </researcher_keyword>
    <researcher_keyword>
        <value>Value B</value>
    </researcher_keyword>
    <researcher_keyword>
        <value>Value C</value>
    </researcher_keyword>
   </researcher_keywords>
 </researcher>
</user>

...并且我希望能够使用由管道字符分隔的 foreach 循环或类似循环输出所有 &lt;researcher_keyword&gt; 值 |

我可以使用如下代码访问特定值:$oXML-&gt;researcher-&gt;researcher_keywords-&gt;researcher_keyword[0]-&gt;value ?? null;

...但是如何使用循环输出数组中的内容?

我认为这样的事情会奏效,但没有运气:

 $oXML2 = new SimpleXMLElement( $response2 );
...
 foreach($oXML2->researcher_keyword as $researcher_keyword){
    echo (string)$researcher_keyword['value'];
 }

var_dump($oXML2-&gt;researcher-&gt;researcher_keywords); 输出:

object(SimpleXMLElement)#19 (1) { ["researcher_keyword"]=> array(7) { [0]=> object(SimpleXMLElement)#18 (1) { ["value"]=> string(19) "Ancient Mesopotamia" } [1]=> object(SimpleXMLElement)#20 (1) { ["value"]=> string(30) "Ancient Near Eastern religions" } [2]=> object(SimpleXMLElement)#16 (1) { ["value"]=> string(12) "Hebrew Bible" } [3]=> object(SimpleXMLElement)#21 (1) { ["value"]=> string(21) "American religion" } [4]=> object(SimpleXMLElement)#22 (1) { ["value"]=> string(18) "American magic" } [5]=> object(SimpleXMLElement)#23 (1) { ["value"]=> string(23) "American literature" } [6]=> object(SimpleXMLElement)#24 (1) { ["value"]=> string(20) "American thought" } } } 

假设关键字永远不会超过 10 个,我可以使用下面的代码,但这并不理想。

  $j = 10;
  for($i = 0; $i < $j ; $i++) {
    $keyword_r = $oXML2->researcher->researcher_keywords->researcher_keyword[$i]->value ?? null;
      echo $keyword_r . "<br>";
  }

谢谢

【问题讨论】:

  • 我认为你需要循环遍历$oXML2-&gt;researcher-&gt;researcher_keywords-&gt;children()

标签: php arrays curl foreach


【解决方案1】:

使用此代码:

$s = '<user>
 <researcher>
  <researcher_keywords>
    <researcher_keyword>
        <value>Value A</value>
    </researcher_keyword>
    <researcher_keyword>
        <value>Value B</value>
    </researcher_keyword>
    <researcher_keyword>
        <value>Value C</value>
    </researcher_keyword>
   </researcher_keywords>
 </researcher>
</user>';

$oXML2 = new SimpleXMLElement( $s );
foreach($oXML2->researcher->researcher_keywords->researcher_keyword as $word){
    echo $word->value . '<br />';
}

【讨论】:

  • 谢谢 u_mulder!你摇滚!
猜你喜欢
  • 1970-01-01
  • 2020-02-27
  • 1970-01-01
  • 2011-02-17
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多