javascript - 创建所需的数组

标签 javascript php jquery

我正在通过 ajax 上传文件,我需要安排我的 $_FILES 数组以满足我的需求。

目前这段代码:

<input id='athletes_gid' type='file' name='athletes_gid[]' multiple value="1" />

<script type="text/javascript">
// Variable to store your files
var files;

// Add events
$('#athletes_gid').on('change', prepareUpload);

// Grab the files and set them to our variable
function prepareUpload(event)
{
    files = event.target.files;
}

var data = new FormData();
$.each(files, function(key, value)
{
    data.append(key, value);
});

像这样构造我的数组:

array (size=2)
  0 => 
    array (size=5)
      'name' => string '1398423008894.jpg' (length=17)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'C:\Program Files\wamp\tmp\php40BC.tmp' (length=37)
      'error' => int 0
      'size' => int 116496
  1 => 
    array (size=5)
      'name' => string '1239049963136.jpg' (length=17)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'C:\Program Files\wamp\tmp\php40CD.tmp' (length=37)
      'error' => int 0
      'size' => int 42415

如何主要在 .each 循环中编写上面的代码,以便数组看起来像这样:

array (size=5)
  'name' => 
    array (size=2)
      0 => string '1398423008894.jpg' (length=17)
      1 => string '1239049963136.jpg' (length=17)
  'type' => 
    array (size=2)
      0 => string 'image/jpeg' (length=10)
      1 => string 'image/jpeg' (length=10)
  'tmp_name' => 
    array (size=2)
      0 => string 'C:\Program Files\wamp\tmp\php172F.tmp' (length=37)
      1 => string 'C:\Program Files\wamp\tmp\php1740.tmp' (length=37)
  'error' => 
    array (size=2)
      0 => int 0
      1 => int 0
  'size' => 
    array (size=2)
      0 => int 116496
      1 => int 42415

最佳答案

简单的按键互换功能

function array_keys_flip($oldArray) {
    foreach ($oldArray as $k1 => $v1) {
      foreach ($v1 as $k2 => $v2) {
        $newArray[$k2][$k1] = $v2
      }
    }
    return $newArray;
}

关于javascript - 创建所需的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26497324/

相关文章:

javascript - 为什么这个 JavaScript 函数的输出是 10?

javascript - d3.js 在彼此之上创建对象

javascript - 是否有任何离线的 HTML CSS JavaScript 编辑器,如 JSFiddle、jsbin、codepen 等?

php - MySQL WHERE IN () + AND , PDO 只返回一行

jquery - $(this).hide();无论如何都不会关闭弹出div。查询

javascript - 从鼠标选择后未选择 jQuery UI 自动完成值

javascript - 添加到 jspdf 之前在循环内将图像转换为 base64 - javascript

php - 使用 ORDER BY 子句通过使用从下拉菜单中选择的值来对查询进行排序

javascript - 在 ajax 成功中无法检测到来自 mysql 的 json_encode 结果

javascript - 一段时间后在弹出浏览器或选项卡浏览器之间切换