试图从另一个数组变量的一部分设置数组变量

时间:2011-11-03 11:17:42

标签: php

我正在尝试将数组变量的一部分设置为一个新的数组变量,如下所示:

$this->data['uploadFront'] = array();
$this->data['uploadFront'] = $this->data['Card']['uploadFront'];

但是我得到了未定义的索引错误。

$ this-> data ['Card']数组如下所示:

Array
(
    [Card] => Array
        (
            [name] => 
            [company_name] => 
            [firstname] => 
            [lastname] => 
            [position] => 
            [location] => 
            [phone] => 
            [website] => 
            [mobile] => 
            [comp_name] => 0
            [uploadFront] => Array
                (
                    [name] => 
                    [type] => 
                    [tmp_name] => 
                    [error] => 4
                    [size] => 0
                )

            [uploadBack] => Array
                (
                    [name] => 
                    [type] => 
                    [tmp_name] => 
                    [error] => 4
                    [size] => 0
                )

        )

)

在这个过程中需要修复哪些错误?

2 个答案:

答案 0 :(得分:0)

$this->data['uploadFront'][] = $this->data['Card']['uploadFront'];

如果你想附加到数组,你必须使用 [] 来表明你要追加,而不是分配。

答案 1 :(得分:0)

抱歉,我第一次没有正确阅读你的帖子。

正如Catalin告诉你的那样,如果你的阵列是你告诉我们的,即$ this-> data ['Card'] = ARRAY,那你就会创造一个不必要的额外关卡:两次'卡',所以['卡 '] [' 卡'。我建议您将$ this->数据定义为您所说的数组,然后要求将['uploadFront']复制到$ this->数据数组的第一级。在你所描述的内容中,你试图访问阵列中未发现的部分。

在代码中(可能你需要在你的类中的其他地方声明$ this->数据数组,但是为了解释我把它写成这样):

$this->data = array
(
'Card' => array
    (
        'name' => '',
        'company_name' => '', 
         ...
        'uploadFront' => array
            (
                'name' =>'', 
                'type' => '',
                'tmp_name' => '',
                'error' => '4',
                'size' => '0'
            )

        'uploadBack' => array
            (
               ...
            )

    )

$this->data['uploadFront'] = $this->data['Card']['uploadFront'];