2010-04-13 2 views
2

le code suivant produit l'erreur dans le titre. J'ai essayé de google, mais tout ce que j'ai eu étaient des pages qui ont eu la même erreur (et pas une explication de celui-ci). Ce n'est pas vraiment un problème car cela fonctionne et l'annulation de l'erreur avec le @ fonctionne très bien. Bien que je me demande toujours pourquoi je n'ai pas pu exécuter array_multisort une seule fois sans avoir cette erreur.Attention: array_multisort() [function.array-multisort]: L'argument # 1 devrait être un tableau ou un drapeau de tri dans

public function getMostRelevant(){ 

    list($occurrences, $keywords) = $this->occurr_keyw_array; 


    array_multisort($occurrences, SORT_DESC, SORT_NUMERIC, 
     $keywords); 

    $return_array = array(
     array($occurrences[0], $keywords[0]), 
     array($occurrences[1], $keywords[1]), 
     array($occurrences[2], $keywords[2]) 
     ); 

    return $return_array; 

} 

Répondre

0

Assurez-vous que $this->occurr_keyw_array puis $occurrences contiennent ce que vous attendez de contenir.

+0

$ this-> occurrence_keyw_array: Tableau ([0] => Tableau ([0] => 5 [1] => 0 [2] => 0 [3] => 0 [4] => 99) [1] => Array ([0] => poumon [1] => is [2] => most [3] => important [4] => organe)) – johnny

+0

does $ occurences contient vraiment Array ([ 0] => 5 [1] => 0 [2] => 0 [3] => 0 [4] => 99) après la liste ($ occurren .... line? –

0

Vous pouvez essayer de déclarer les tableaux que vous utilisez au préalable:

$occurrences = array(); 

Il n'a pas de sens pour moi en particulier, mais cela a fonctionné ici. Je suppose que c'est One More PHP Quirk.

0

Vous pouvez appliquer une vérification avant la fonction pour vérifier s'il s'agit d'un tableau. Par exemple:

if(is_array($occurrences)){ 
    array_multisort($occurrences, SORT_DESC, SORT_NUMERIC,$keywords); 
} 

Je pense que cela pourrait vous aider.

Questions connexes