【问题标题】:Warning: array_multisort() [function.array-multisort]: Argument #1 is expected to be an array or a sort flag in警告:array_multisort() [function.array-multisort]:参数 #1 应为数组或排序标志
【发布时间】:2011-02-07 15:47:21
【问题描述】:

以下代码在标题中产生错误。我试图用谷歌搜索它,但我得到的只是出现相同错误的页面(而不是解释)。这不是一个真正的问题,因为它实际上正在工作并且使用 @ 取消错误效果很好。虽然我仍然想知道为什么我无法只执行一次 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;

 }

【问题讨论】:

    标签: php arguments


    【解决方案1】:

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

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

    我想这会对你有所帮助。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 这是 $this->occurr_keyw_array: 数组 ( [0] => 数组 ( [0] => 5 [1] => 0 [2] => 0 [3] => 0 [ 4] => 99) [1] => 数组 ([0] => 肺 [1] => 是 [2] => 最 [3] => 重要 [4] => 器官))
      • 在 list($发生....行?
      【解决方案3】:

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

      $occurrences = array();
      

      这对我来说特别没有意义,但在这里有效。我想这又是一个 PHP 怪癖。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 2013-06-01
        • 1970-01-01
        • 2020-06-17
        • 2017-05-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多