PHP在排序数组上使用foreach

时间:2017-11-20 10:15:58

标签: php arrays sorting foreach

大家好我有一个数组我正在存储时间戳。然后我使用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()

我知道如何通过阵列,因为我需要做的不仅仅是回应它。

3 个答案:

答案 0 :(得分:4)

asort返回boolean,您无法迭代布尔值!

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

答案 1 :(得分:1)

您需要将$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 ] )

答案 2 :(得分:0)

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

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