2017-08-27 1 views
2

j'avoir des résultats dans une variable comme ceci:Afficher uniquement les chaînes uniques avec php

string(4) "iFit" string(5) "Žene" string(6) "Odeća" string(5) "Brend" string(7) "Trening" string(5) "Šorc" string(16) "Reebok Les Mills" string(9) "Les Mills" string(6) "Outlet" string(6) "Odeća" string(4) "iFit" string(5) "Žene" string(6) "Odeća" string(5) "Brend" string(6) "Reebok" string(7) "Trening" string(6) "Majica" string(6) "Outlet" string(4) "Yoga" string(6) "Odeća" string(6) "Odeća" string(4) "iFit" string(5) "Žene" string(6) "Odeća" string(5) "Brend" string(6) "Reebok" string(7) "Trening" string(6) "Majica" string(6) "Outlet" string(4) "Yoga" string(6) "Odeća" string(6) "Odeća" string(4) "iFit" string(5) "Žene" string(6) "Odeća" string(5) "Brend" string(6) "Reebok" string(7) "Trening" string(6) "Majica" string(6) "Outlet" string(4) "Yoga" string(6) "Odeća" string(6) "Odeća" string(4) "iFit" string(5) "Žene" string(6) "Odeća" string(5) "Brend" string(6) "Reebok" string(7) "Trening" string(6) "Majica" string(6) "Outlet" string(4) "Yoga" string(6) "Odeća" string(6) "Odeća" string(4) "iFit" string(5) "Žene" string(6) "Odeća" 

Comment puis-je afficher uniquement les valeurs uniques? Peu importe ce que je fais, je reçois le résultat sam

Ce que je l'ai fait jusqu'à présent:

$arr = explode(" " , $string); 
$arr = array_unique($arr); 
$string = implode(" " , $arr); 

Peu importe ce que je fais je reçois toujours le même résultat. Mais j'ai besoin de mettre ces valeurs uniques dans la liste déroulante. S'il vous plaît, aidez-moi à trouver la solution.

Ceci est mon code complet:

foreach ($collection as $product){ 
     $categoryIds = $product->getCategoryIds(); 


     $categories = $categoryCollection->create() 
      ->addAttributeToSelect('*') 
      ->addAttributeToFilter('entity_id', $categoryIds); 

     foreach ($categories as $category) { 
      var_dump($category->getName()); 
     } 
    } 

Je suis en train de faire toutes les catégories dans magento et les mettre dans la liste déroulante frontend. Voici une foreach que j'ai besoin d'obtenir tous les noms de catégories mais j'obtiens le résultat comme montré ci-dessus.

+0

qu'est-ce que '$ string'? est-ce 'string (4)" iFit "string (5)" Žene "...' ou quoi? – Federkun

+0

Oui $ chaîne est le résultat représentatif. :) –

+0

Pour une raison quelconque, je n'ai pas de tableau unique, donc quand je fais exploser, j'obtiens le même résultat. array_unique retourne toutes les mêmes valeurs encore et encore. –

Répondre

1

Si array_unique() ne fonctionne pas correctement pour une raison quelconque, essayez d'utiliser ceci:

$string; 
$arr = explode(" " , $string);  
$result = array(); 
foreach($arr as $key=>$val) {  
    $result[$val] = true; 
} 

Dans la plupart des cas, cela est encore plus rapide que d'utiliser array_unique(). J'espère que cela a aidé. Vous pouvez en apprendre plus sur le PHP documentation.

+0

Merci beaucoup! –

+0

Pas de soucis. Toujours heureux d'aider. Vous devriez lire la documentation PHP quand vous en aurez l'occasion. C'est mieux que mon explication et la plupart du temps ont des alternatives écrites là-bas! – Wishan