各位, 如您所知,在新的 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/