PHP simplexml group by id

hzbexzde  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(92)

我有一个饲料,其中有产品->产品,其中有不同的领域,如ID,名称,价格。
ID有时可能是相同的,所以我想将其分组或仅显示我找到的第一个。
例如:

<product>
  <pid>
  792422100
  <pid>
  <name>
  Produtname
  </name>
  <price>
  10.00$
  </price>
</product>
<product>
  <pid>
  792422100
  <pid>
  <name>
  Produtname 2
  </name>
  <price>
  10.00$
  </price>
</product>

就像这样,这里的pid是相同的。
我把它印成

foreach ($xml->product as $item) {
  echo $item->pid;
  echo $item->name;
  echo $item->price; 
}

但我不想打印产品与相同的pid多.有没有一种方法可以按pid分组,或者只显示列表中唯一的第一个pid?

vhmi4jdf

vhmi4jdf1#

您可以通过将重复ID记录在数组或字符串中来检查它们。大概是这样的:

<?php

$idList = array();

foreach ($xml->product as $item) {
    if (array_search($item->pid, $idList) <= 0) {
        array_push($idList, $item->pid);
        echo $item->pid;
        echo $item->name;
        echo $item->price;
    }
}

?>

相关问题