【问题标题】:Simplexml to database using php [closed]使用 php 到数据库的 Simplexml [关闭]
【发布时间】:2013-01-31 04:49:08
【问题描述】:

我正在使用 amazon api 检索要存储在数据库中的演员列表。我不断收到重复的条目,希望有人能在可能的情况下帮助我。

这就是我正在做的事情

$i = $result->Items->Item->ItemAttributes->Actor;
echo "Actor :"; $alist = array(); foreach ($i as $a) {  $alist[] = $a; print_r($alist);  }

他就是结果。

Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) ) Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) ) Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) ) Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) [3] => SimpleXMLElement Object ( [0] => Kelly Macdonald ) ) Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) [3] => SimpleXMLElement Object ( [0] => Kelly Macdonald ) [4] => SimpleXMLElement Object ( [0] => Mary Steenburgen ) ) 

任何帮助将不胜感激。

干杯

【问题讨论】:

    标签: php xml arrays amazon-web-services simplexml


    【解决方案1】:

    将 print_r() 函数移到 foreach 循环之外

    echo "Actor :";
    $alist = array();
    foreach ($i as $a) {
      $alist[] = $a;
    }
    print_r($alist);
    

    您的输出随着每次迭代而增长

    Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) )
    Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) )
    Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) )
    Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) [3] => SimpleXMLElement Object ( [0] => Kelly Macdonald ) )
    Array ( [0] => SimpleXMLElement Object ( [0] => Tommy Lee Jones ) [1] => SimpleXMLElement Object ( [0] => John Goodman ) [2] => SimpleXMLElement Object ( [0] => Peter Sarsgaard ) [3] => SimpleXMLElement Object ( [0] => Kelly Macdonald ) [4] => SimpleXMLElement Object ( [0] => Mary Steenburgen ) ) 
    

    如果你更好地格式化你的代码/输出,你会更容易发现问题

    【讨论】:

      【解决方案2】:

      您可以将名称值设置为数组的键; 这样重复的名称将覆盖数组中的前一个键。

      $alist[$a->name] = $a
      

      您必须从 SimpleXMLElement 对象中检索字符串中的名称

      我希望我能理解您的问题,并且这些提示会有所帮助

      这将删除重复的条目到您的数组中,而不是重复的 print_r 与鞋子相同的数组,多一个行吃时间

      【讨论】:

      • 我没有尝试过,但感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      相关资源
      最近更新 更多