php中xml文件中的particluar json数组

php中xml文件中的particluar json数组,php,arrays,xml,json,Php,Arrays,Xml,Json,在下面的xml文件“catalog”中,每个图书id有5个变量 <?xml version="1.0"?> <catalog> <book id="bk101"> <author>Gambardella</author> <title>XML Developer</title> <genre>Computer</genre> <p

在下面的xml文件“catalog”中,每个图书id有5个变量

<?xml version="1.0"?>
<catalog>
   <book id="bk101">
      <author>Gambardella</author>
      <title>XML Developer</title>
      <genre>Computer</genre>
      <price>44.95</price>
      <publish_date>2000-10-01</publish_date>
   </book>
   <book id="bk102">
      <author>Ralls</author>
      <title>Midnight Rain</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-12-16</publish_date>
   </book>
   <book id="bk103">
      <author>Corets</author>
      <title>Maeve Ascendant</title>
      <genre>Fantasy</genre>
      <price>5.95</price>
      <publish_date>2000-11-17</publish_date>
    </book>
</catalog>

你不能真的那样做。您可以做的更好的事情是将其解析为simplexml,然后遍历对象,如果特定对象已经具有“102”属性,则只需执行一个计数器。我建议使用print\r进行调试,以确定键值“book id”是否存在。它也将有助于稍后遍历JSON结构

    foreach ( $data['catalog'] as $row ) {  
        if ($row['book id'] == '102') {
            // do the work        
        } else {
            // for debugging
            echo print_r($row, true);
        }
    }

我还注意到你把目录拼错了$数据['catlog']到$data['catalog']

@Paul Crovella:parse json array in phpadded json php code in the question无法理解您的代码放入其他{print,row}print\r所做的是显示行数组中的键和值。这将帮助您缩小错误的范围:我的问题是如何获取图书id='102'的json数组,而不是xml数组。我理解,如果您尝试了,您现在就可以得到答案。请用print_r的回复进行评论,这将允许我们帮助您。
    foreach ( $data['catalog'] as $row ) {  
        if ($row['book id'] == '102') {
            // do the work        
        } else {
            // for debugging
            echo print_r($row, true);
        }
    }