警告:array_multisort()[function.array-multisort]:参数#1应该是一个数组或一个排序标志

时间:2010-04-13 21:04:25

标签: php arguments

以下代码在标题中产生错误。我试图谷歌它,但我得到的是那些得到相同错误的页面(而不是解释)。这不是一个真正的问题,因为它实际上正在工作并且使用@解决错误输出就好了。虽然我仍然想知道为什么我没有能够执行array_multisort而没有收到此错误。

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;

 }

3 个答案:

答案 0 :(得分:2)

您可以在函数前应用检查以检查它是否为数组。例如:

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

我认为这会对你有帮助。

答案 1 :(得分:0)

确保$this->occurr_keyw_array然后$occurrences包含您希望它们包含的内容。

答案 2 :(得分:0)

你可以尝试预先声明你使用的数组:

$occurrences = array();

对我来说没什么特别的意义,但它在这里起作用。我想它是一个更多的PHP Quirk。