如何在Codeigniter中合并多个数组

时间:2016-05-06 11:49:08

标签: php arrays codeigniter

我正在尝试合并两个数组,但获得NULL。以下是我的代码

$a = 1;
foreach($codes as $values) {
$id = $values['id'];
$post_data = array ( 
    "id" => $id,
    "name" => $this->input->post('Name'),
    "from_date" => $this->input->post('FromDate'),
    "to_date" => $this->input->post('ToDate')
    );
    $this->data['output' . $a++] = $this->my_modal->simple_post($post_data);
}

$this->data['output'] = array_merge($this->data['output1'], $this->data['output2']);

var_dump($this->data['output']);

任何建议将不胜感激。感谢..

3 个答案:

答案 0 :(得分:0)

您必须删除NULL

的第一个参数(array_merge();

什么是$this->input->$id?你的意思是$id吗?

在这种环境下,最好使用array_push();

$a = 1;
$this->data['output'] = array();
foreach($codes as $values)
{
    $id = $values['id'];
    $post_data = array ( 
    "id" => $id,
    "name" => $this->input->post('Name'),
    "from_date" => $this->input->post('FromDate'),
    "to_date" => $this->input->post('ToDate')
    );

    $new_data = $this->my_modal->simple_post($post_data);
    array_push($this->data['output'], $new_data);
}

var_dump($this->data['output']);

答案 1 :(得分:0)

 $a = 1;
 $this->data['output'] = array();
 foreach($codes as $values){
$id = $values['id'];
$post_data = array ( 
"id" => $id,
"name" => $this->input->post('Name'),
"from_date" => $this->input->post('FromDate'),
"to_date" => $this->input->post('ToDate')
);

$data['output2']= $this->my_modal->simple_post($post_data);
if(count($this->data['output1']) > 1)   {
        $this->data['all']      =   array_merge($this->data['output1'],$data['output2']);
    }else {
        $this->data['all']      =   $data['output1'];
    }
 }
 print_r($this->data['all']);

答案 2 :(得分:0)

您的代码完全正确,唯一的问题是您使用$a = 1启动计数器,并执行$a++,这将导致2.因此output1不存在。但是,如果你写(注意微妙的变化):

$a = 1;
foreach($codes as $values) {
    $id = $values['id'];
    $post_data = array ( 
        "id" => $id,
        "name" => $this->input->post('Name'),
        "from_date" => $this->input->post('FromDate'),
        "to_date" => $this->input->post('ToDate')
    );
    $this->data['output' . $a] = $this->my_modal->simple_post($post_data); // $a = 1 now
    $a++; // $a becomes 2 here
}

$this->data['output'] = array_merge($this->data['output1'], $this->data['output2']);

var_dump($this->data['output']);