Autor Zpráva
siok
Profil
Dobrý den,

potřeboval bych poradit jak z XML dokumentu vyčtu vždy jen jednou položku i když se tam opakuje?
Příklad:
<import>
    <product>
        <manufacturer>Force</manufacturer> 
        ...
    </product>
    <product>
        <manufacturer>Force</manufacturer> 
        ...
    </product>
    <product>
        <manufacturer>Force</manufacturer> 
        ...
    </product>
    <product>
        <manufacturer>Litex</manufacturer> 
        ...
    </product>
    <product>
        <manufacturer>Force</manufacturer> 
        ...
    </product>
    <product>
        <manufacturer>Litex</manufacturer> 
        ...
    </product>
    ...
</import>
A výstup bych potřeboval Force, Litex.
Mysql dotazu se používá Group By
Kajman
Profil
Pamatujte si vypsané. Ukažte současný kód, třeba bude stačit drobná změna.
Náhodnýporadce
Profil *
$vyrobce=[];
foreach(........as $xml)
{
  if(!isset($vyrobce[(string)$xml->manufacturer])
  {
    $vyrobce[$xml->manufacturer]=1;
  }

}
*název vyrobce ukladam jako klič, protože kdy jich tam bylo opravdu hodně tak funkce in_array bude pomala..při průchodu velkého xml..
siok
Profil
Kajman, siok, Náhodnýporadce:
$stack = array();
    
    foreach ($xml->product as $product):
        $category = $product->categories->category;
        if(in_array($category,$stack)==false):  array_push($stack, $category); endif;   
    endforeach;
    print_r($stack); 

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0