2012-02-07 6 views
1

J'ai essayé de faire fonctionner cela pendant un moment maintenant! Ce que j'essaie de faire est de trier deux tableaux, de sorte qu'ils soient tous deux classés en fonction des valeurs dans l'un des tableaux. Je ne sais pas comment "attacher" les tableaux pour que les deux soient commandés.tri simple_html_dom tableaux

Voici mon code:

$html = file_get_html('http://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=hat&x=0&y=0'); 
$test = strtolower("Beechfield Turn-up Beanie"); 

$arrayT = array(); 
$arrayP = array(); 

foreach ($html->find('div.product') as $results) { 
    foreach ($results->find('a.title') as $title) { 
     $titleLow = strtolower($title->plaintext); 
     similar_text($test, $titleLow, $percent); 
     $arrayT[] = $title->plaintext; 
     $arrayP[] = round($percent); 
    } 

} 

Je compare la similitude des titres ramenés du site extérieur sont à la variable $ test, qui dans ce cas est juste un exemple.

Ensuite, je veux trier ma sortie en fonction des variables $ percent. Par exemple, sans tri la sortie serait:

titre-1 55

titre-2 90

titre-3 66

Cependant, je veux à trier:

title-2 90

titre-3 66

title-1 55

J'ai essayé d'utiliser array_multisort, mais il ne trierait que chaque tableau indépendamment. J'ai aussi regardé usort et ksort, mais je n'ai pas trouvé de réponse satisfaisante.

Toute aide serait appréciée! Je n'ai jamais utilisé aucune sorte de tri en PHP et j'ai seulement commencé à apprendre des tableaux alors s'il vous plaît, allez-y doucement.

Répondre

1

Je vous suggère de faire ceci: Au lieu de stocker title et le pourcentage dans deux tableaux différents.

vous pouvez avoir des indices de tableau comme les titres.

Comme ceci:

$html = file_get_html('http://www.amazon.co.uk/s/ref=nb_sb_noss?url=search-alias%3Daps&field-keywords=hat&x=0&y=0'); 
$test = strtolower("Beechfield Turn-up Beanie"); 

$arrayTP = array(); 


foreach ($html->find('div.product') as $results) { 
    foreach ($results->find('a.title') as $title) { 
     $titleLow = strtolower($title->plaintext); 
     similar_text($one, $titleLow, $percent); 
     $arrayTP[$title->plaintext] = round($percent); 
    } 

} 

Vous pouvez trier ultérieurement à l'aide d'une fonction de tri de tableau en fonction du pourcentage. Utilisez ceci: asort. Parce que :

Cette fonction trie un tableau tel que les indices de tableau maintiennent leur corrélation avec les éléments du tableau auxquels ils sont associés. Ceci est principalement utilisé lors du tri de tableaux associatifs où l'ordre réel des éléments est significatif.

Pour l'impression faire ceci:

foreach($arrayTP as $title => $percent) { 
. 
. 
. 
+0

fantastique qui fonctionne très bien! J'y suis allé toute la journée, merci beaucoup. – magicPenguin

+0

@magicPenguin Bienvenue. – ThinkingMonkey