【问题标题】:PHP using foreach on a sorted arrayPHP在排序数组上使用foreach
【发布时间】:2018-05-03 12:46:07
【问题描述】:

大家好,我有一个存储时间戳的数组。然后我使用asort() 对它们进行排序,然后我想用foreach 遍历每个数组,但我得到一个无效的参数提供错误,这就是我所拥有的:

$sorted_dates = asort($dates_to_sort);

var_dump:

array(4) { [2]=> int(1512086400) [3]=> int(1512432000) [1]=> int(1513036800) [0]=> int(1514073600) } 

Foreach:

foreach ($sorted_dates as $value) {
    echo "<br>".$value."<br>";
}

错误:

Warning: Invalid argument supplied for foreach()

知道如何通过数组,因为我需要做的不仅仅是回显它。

【问题讨论】:

    标签: php arrays sorting foreach


    【解决方案1】:

    asort 返回一个boolean,你不能遍历一个布尔值!

    // your code should be like
    asort($dates_to_sort);
    foreach ($dates_to_sort as $value) {
        echo "<br>".$value."<br>";
    }
    

    【讨论】:

      【解决方案2】:

      您需要将$dates_to_sort 传递给foreach() 而不是$sorted_dates。喜欢:

      foreach ($dates_to_sort as $value) {
          echo "<br>".$value."<br>";
      }
      

      因为asort() 通过引用获取输入并返回bool。见:

      bool asort ( array &$array [, int $sort_flags = SORT_REGULAR ] )
      

      【讨论】:

        【解决方案3】:

        asort 将通过引用对数组进行排序,如果排序成功与否,则返回布尔值 true/false。

        asort($dates_to_sort);
        foreach ($dates_to_sort as $value) {
            echo "<br>".$value."<br>";
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-01-24
          • 1970-01-01
          • 2018-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多