2016-05-06 5 views
1

2つの配列をマージしようとしていますが、NULLを取得しようとしています。以下は、任意の提案が理解されるであろうCodeigniterで複数の配列をマージする方法

$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']); 

私のコードです。おかげで..

答えて

0

あなたはarray_merge();

の最初のパラメータ(NULL)を削除する必要があると$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']); 
+0

ありがとう..その作業.. –

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']); 
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']); 
関連する問題