如何在php$\u文件变量中添加额外参数

如何在php$\u文件变量中添加额外参数,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我有一个多图像上传页面。问题是当我更新之前上传的图像时。之前上传的图像在数据库中有自己的ID。所以,当我点击UpdatePost时,并不是所有的图片都没有设置,例如 Dump => array(1) { ["editproductimages"] => array(5) { ["name"] => array(5) { [0] => string(0) "" [1] => string(11) "desktop.jpg"

我有一个多图像上传页面。问题是当我更新之前上传的图像时。之前上传的图像在数据库中有自己的ID。所以,当我点击UpdatePost时,并不是所有的图片都没有设置,例如

Dump => array(1) {
  ["editproductimages"] => array(5) {
    ["name"] => array(5) {
      [0] => string(0) ""
      [1] => string(11) "desktop.jpg"
      [2] => string(40) "12071419_404680519720527_756783084_n.jpg"
      [3] => string(0) ""
      [4] => string(0) ""
    }
    ["type"] => array(5) {
      [0] => string(0) ""
      [1] => string(10) "image/jpeg"
      [2] => string(10) "image/jpeg"
      [3] => string(0) ""
      [4] => string(0) ""
    }
    ["tmp_name"] => array(5) {
      [0] => string(0) ""
      [1] => string(25) "/opt/lampp/temp/phpYJDIAO"
      [2] => string(25) "/opt/lampp/temp/phpmyxoXB"
      [3] => string(0) ""
      [4] => string(0) ""
    }
    ["error"] => array(5) {
      [0] => int(4)
      [1] => int(0)
      [2] => int(0)
      [3] => int(4)
      [4] => int(4)
    }
    ["size"] => array(5) {
      [0] => int(0)
      [1] => int(55203)
      [2] => int(33773)
      [3] => int(0)
      [4] => int(0)
    }
  }
}
我想要的是在$\u文件中添加extract数组字段以便在post中保存它们的数据库id

["id"] => array(5) {
          [0] => int(10)
          [1] => int(11)
          [2] => int(12)
          [3] => int(14)
          [4] => int(13)
       }

这可能吗?

我不认为这是正确的方法或正确的答案,但我认为array\u push可能会对您有所帮助,因为$\u文件也是一个数组

假设这是文件数据

$filesData = array(
        array('editproductimages'=>array(
                array("name"=>array("","desktop.jpg","12071419_404680519720527_756783084_n.jpg","","")),
                array("type"=> array("","image/jpeg","image/jpeg","","")),
                array("tmp_name"=>array("","/opt/lampp/temp/phpYJDIAO","/opt/lampp/temp/phpmyxoXB","","")),
                array("error"=>array(4,0,0,4,4)),
                array("size"=>array(0,55203,33773,0,0))
            ))
    );
那么下面的数组($ids)就是你想要添加的。你只需要使用array\u push来添加它

    $ids = array('id'=>array(10,11,12,14,13));
    //actual insertion of $ids to the $filesData variable
    array_push($filesData[0]['editproductimages'],$ids);
    echo '<pre>';
    var_dump($filesData);
    echo '</pre>';
$ids=array('id'=>array(10,11,12,14,13));
//向$filesData变量实际插入$id
数组_push($filesData[0]['editproductimages',$id);
回声';
var_dump($filesData);
回声';

我希望这有帮助

我不认为这是正确的方法或正确的答案,但我认为array\u push可能会对您有所帮助,因为$\u文件也是一个数组

假设这是文件数据

$filesData = array(
        array('editproductimages'=>array(
                array("name"=>array("","desktop.jpg","12071419_404680519720527_756783084_n.jpg","","")),
                array("type"=> array("","image/jpeg","image/jpeg","","")),
                array("tmp_name"=>array("","/opt/lampp/temp/phpYJDIAO","/opt/lampp/temp/phpmyxoXB","","")),
                array("error"=>array(4,0,0,4,4)),
                array("size"=>array(0,55203,33773,0,0))
            ))
    );
那么下面的数组($ids)就是你想要添加的。你只需要使用array\u push来添加它

    $ids = array('id'=>array(10,11,12,14,13));
    //actual insertion of $ids to the $filesData variable
    array_push($filesData[0]['editproductimages'],$ids);
    echo '<pre>';
    var_dump($filesData);
    echo '</pre>';
$ids=array('id'=>array(10,11,12,14,13));
//向$filesData变量实际插入$id
数组_push($filesData[0]['editproductimages',$id);
回声';
var_dump($filesData);
回声';

我希望这对你有所帮助,你可以这样做,假设你有这个表格

foreach($_POST['image_ids'] as $k => $id){
    // process and save $_FILE['image'][$k] 
    // use $id to save/update necessary values in db
}

你可以这样做,假设你有这个表格

foreach($_POST['image_ids'] as $k => $id){
    // process and save $_FILE['image'][$k] 
    // use $id to save/update necessary values in db
}

请发布一些代码您是否尝试提交带有每个图像ID的隐藏输入?我认为在
$\u文件中添加自定义字段是不可能的。
superglobal。…据我所知know@armen不,这没有帮助,因为您仍然没有使用带有后期隐藏ID的_文件的映射。你抓到我了吗?是的,我抓到你了,最初打算这样做,因为我在底部的回答中发布了一些代码。你试图提交带有每个图像ID的隐藏输入吗?我认为在
$\u文件中添加自定义字段是不可能的。
superglobal….就我而言know@armen不,这没有帮助,因为您仍然没有映射使用带有后期隐藏ID的_文件。你找到我了吗?是的,我找到你了,我在bottomlet上发布了我的答案,最初打算这样做,但是,我想修改$FILE_uu本身的实现,以便我可以在发布时映射所有id。我不知道你为什么要覆盖$u文件的实现,因为我不知道你想要实现什么,我的建议是不要覆盖它。尽管您也可以为您的ID添加一个输入(隐藏),然后使用上面的代码将其放入$\u文件中。让我们看看,我不想修改$FILE_u本身的实现,这样我就可以在发布时映射所有id。我不知道你为什么要覆盖$u文件的实现,因为我不知道你想实现什么,我的建议是不要覆盖它。尽管你也可以添加一个输入(隐藏)对于您的ID,请使用上述代码将其放入$\u文件中。