如何对数组中的浮点数进行排序?

时间:2014-10-26 16:23:46

标签: php arrays multidimensional-array

我尝试了sortKsortmultiSort,没有任何效果,我也不确定原因。我可以使用print_r并看到它是数组,但它不会排序只是一直给出错误。我认为这是因为价值是floats,但我可能错了。

这是一个使用print_r函数显示数组的页面:

  

http://forcedchange.testdomain.pw/gallery/

这是我的代码:

<?php 
$uploads = wp_upload_dir(); //Path to my gallery uploads folder
if ($dir = opendir($uploads['basedir'].'/gallery-2')) {
    $images = array();
    while (false !== ($file = readdir($dir))) { 
        if ($file != "." && $file != "..") {
            $images[] = $file; 
        }
    }
     closedir($dir);
}

$images = ksort($images);  /* not working */
// echo '<pre>';
// echo print_r($images);
// echo '</pre>';
foreach($images as $image) {
    echo '<figure><img src="';
    echo $uploads['baseurl'].'/gallery-2/'. $image;
    echo '" alt="" /></li>';
    echo '<figcaption>';
    echo '<p>' .  erq_shortcode() . '</p>';
    echo '</figcaption>';
    echo '</figure>';

}
?>

2 个答案:

答案 0 :(得分:3)

尝试使用natsort($images)(不知道您想要的结果)。它应该对数组进行排序:

1.png
2.png
...
9.png
10.png
...
20.png

分配将不起作用,因为sort-funcs返回一个bool ...排序是在给定数组内直接完成的。

答案 1 :(得分:-1)

$images=glob("/path/*.{jpg,png,gif}");

ksort($images);

foreach($images as $image)
{
...
... do something with basename($image);
...
}