我想从$ _FILES捕获扫描,因为总会传递一个空的扫描输入名称,而其他的varry会发生变化,我需要获取$ _FILES名称和数字。你对如何做到这一点有什么建议吗?
// Skipping the empty scan, and getting the 0-100 possible
$results = preg_grep('/^scan\d{1,2}$/', $_FILES);
生成数组到字符串转换错误
转储后广告
["scan0"]=>
array(5) {
["name"]=>
string(6) "2.jpeg"
["type"]=>
string(10) "image/jpeg"
["tmp_name"]=>
string(24) "C:\xampp\tmp\phpD7B4.tmp"
["error"]=>
int(0)
["size"]=>
int(24618)
}
["scan1"]=>
array(5) {
["name"]=>
string(6) "2.jpeg"
["type"]=>
string(10) "image/jpeg"
["tmp_name"]=>
string(24) "C:\xampp\tmp\phpD7B5.tmp"
["error"]=>
int(0)
["size"]=>
int(24618)
}
["scan"]=>
array(5) {
["name"]=>
string(0) ""
["type"]=>
string(0) ""
["tmp_name"]=>
string(0) ""
["error"]=>
int(4)
["size"]=>
int(0)
}
答案 0 :(得分:1)
请注意array_filter
with flag仅适用于PHP版本> = 5.6
$scans = array_filter($_FILES, function ($key, $scan) {
return $key != 'otherscan' && !empty($scan['name']);
}, ARRAY_FILTER_USE_BOTH);
$names = array_combine(
array_keys($scans),
array_map(function ($scan) {
return $scan['size'];
}, $scans)
);
var_dump($names);
答案 1 :(得分:1)
$scankeys = [];
foreach($scans as $key => $scan)
{
if(preg_match("/^scan[0-9]{1,2}$/", $key)){
$scankeys[] = $key;
}
}
我应该提到这比尝试组合多个数组操作函数以获得相同的结果更好。