php - 按文件名对 $_FILES 进行排序

标签 php sorting multidimensional-array

各位, 如您所知,在新的 HTML5 中,您可以非常轻松地上传多个文件。 但我这里的问题是如何按列“名称”对 $_FILES 数组进行排序? 这是 $_FILES 的示例数组

 Array (
[item_file] => Array (
    [name] => Array (
        [0] => redphotonzillion1.jpg
        [1] => redphotonzillion2.jpg
        [2] => redphotonzillion3.jpg
        [3] => redphotonzillion4.jpg
        [4] => redphotonzillion5.jpg
        [5] => redphotonzillion6.jpg
    )
    [type] => Array (
        [0] => image/jpeg
        [1] => image/jpeg
        [2] => image/jpeg
        [3] => image/jpeg
        [4] => image/jpeg
        [5] => image/jpeg
    )
    [tmp_name] => Array (
        [0] => /var/www/clients/client0/web6/tmp/phpi4i5fE
        [1] => /var/www/clients/client0/web6/tmp/phpzHwagk
        [2] => /var/www/clients/client0/web6/tmp/phpYpAgg0
        [3] => /var/www/clients/client0/web6/tmp/phpAIdngG
        [4] => /var/www/clients/client0/web6/tmp/phpyamugm
        [5] => /var/www/clients/client0/web6/tmp/phpFvWBg2
    )
    [error] => Array (
        [0] => 0
        [1] => 0
        [2] => 0
        [3] => 0
        [4] => 0
        [5] => 0
    )
    [size] => Array (
        [0] => 7990
        [1] => 8985
        [2] => 8014
        [3] => 7621
        [4] => 7023
        [5] => 7151
    )
)

)

我想要的只是按名称对这个数组进行排序

最佳答案

对于这种特定情况,PHP 提供了正确的函数:array_multisort() :

它可以对多维数组(或多个平面数组)进行排序,方法是首先对第一个数组进行排序,然后将结果顺序应用于所有其他数组(有关示例,请参阅 documentation)。

array_multisort(
  // Array used to sort + optional parameters
  $_FILES['item_file']['name'], SORT_ASC, SORT_STRING

  // All other arrays to be sorted in the same order
  $_FILES['item_file']['type'],
  $_FILES['item_file']['tmp_name'],
  $_FILES['item_file']['error'],
  $_FILES['item_file']['size']
);

此方法将保留分配给文件name的相应索引,以便可以使用。

关于php - 按文件名对 $_FILES 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19575714/

相关文章:

java - PHP JSON 到 Java 由于不可见字符而无法解析

php - 如何在没有 Composer 的情况下使用 PHPMailer?

python - 在python中将数据文件读取到多维数组中

python - Pandas 按条件按列值排名

ruby - 递归地从多维数组中查找一组公共(public)元素

javascript - 为什么我不能在 JS 中复制这个二维数组?我怎样才能制作副本?

php - 以下是 mySQL 表搜索结果

javascript - 更改窗口打开位置

java - 在数字字段上排序 db4o Android

java - 使用链表上的递归进行快速排序