未定义的索引错误...将新索引添加到现有数组

时间:2012-03-24 09:31:12

标签: php codeigniter codeigniter-2

我花了差不多2天的时间来处理这个错误。

if ($_FILES['userfile']['error'] !== 4) {

                $this -> load -> library('upload');

                $settings = array('upload_path' => '././images/yeniler', 'allowed_types' => 'jpg|jpeg');

                $this -> upload -> initialize($settings);

                $dosya = $this -> upload -> do_upload();
                $upload_data = $this -> upload -> data('userfile');
                $formverileri[]="";
                if ($dosya) {
                $dosyaadi = $upload_data['file_name'];

                }

            }
            $formverileri['yeniler_resim'] =$dosyaadi; 
            $formverileri = array('yeniler_baslik' => $this -> input -> post('yeniler_baslik'), 'yeniler_detay' => $this -> input -> post('yeniler_detay'));

            if ($guncelle = $this -> yeniler_model -> updateData($formverileri)) {
                var_dump($formverileri);
                var_dump($upload_data);
                die;
                echo("başarılı");
                $this -> session -> set_flashdata("sonuc", "oldu");
                redirect(base_url() . "admin_yeniler/duzenle/" . $this -> input -> post('yeniler_id'));

            } else {
                echo("olmadı..");
            }

问题是,我无法将$upload_data['file_name']的值赋予$formverileri['yeniler_resim'] ...当我使用print_r单独检查数组时,我看到完全正确的索引和值。但是我无法将$formverileri['yeniler_resim']添加到我的更新数组......

编辑:仅在文件上传后我想将$ upload_data ['file_name']分配给$ formverileri ['yeniler_resim']。我可以复制我的更新功能(这是$ this-> yeniler_model-> updateData($ formverileri))但这不是一个好习惯。为什么我不能在某种条件下向现有数组添加新索引?

1 个答案:

答案 0 :(得分:1)

当您定义像$formverileri = array(..这样的新数组时,该变量的较旧值将替换为您定义的新数据。

试试此代码

 if ($dosya) {
            $dosyaadi = $upload_data['file_name'];
            $formverileri['yeniler_resim'] = $dosyaadi; 
            }

        }

        $formverileri['yeniler_baslik'] = $this -> input -> post('yeniler_baslik');
        $formverileri['yeniler_detay'] = $this -> input -> post('yeniler_detay');