Bu talihsiz bir tasarım kararı olduğunu ve onun artık bunu değiştirmek için çok geç, tam bu davranışına dayanır ki orada çok fazla kod var.
Veri girişi formatı bu tür tespit ve sizin için uygun bir forma onu yeniden engeller ancak başka bir şey yoktur.
<?php
$in = array();
$in['name'] = array('name1', 'name2', 'name3');
$in['tmp_name'] = array('tmpname1', 'tmpname2', 'tmpname3');
$files = array();
// remap input data into desired format
foreach (array_keys($in) as $field) {
foreach ($in[$field] as $index => $item) {
$files[$index][$field] = $item;
}
}
print_r($in);
print_r($files);
Eğer çalıştırırsanız, aşağıdaki sonucu olsun.
[~]> php test.php
Array
(
[name] => Array
(
[0] => name1
[1] => name2
[2] => name3
)
[tmp_name] => Array
(
[0] => tmpname1
[1] => tmpname2
[2] => tmpname3
)
)
Array
(
[0] => Array
(
[name] => name1
[tmp_name] => tmpname1
)
[1] => Array
(
[name] => name2
[tmp_name] => tmpname2
)
[2] => Array
(
[name] => name3
[tmp_name] => tmpname3
)
)
$ _FILES Ve bitirdiniz için de yerine $. Ek bir hile olarak "remapping" kod $ _FILES gibi benzer yapısı ile tüm diziler için çalışıyor