2015-12-17 3 views
1

У меня есть массив на основе POST, как это:Изменить ключ на array_chunk PHP

Array 
(
[condition] => Array 
    (
     [0] => 1 
    ) 

[container] => 
[cleaning] => Y 
[owner] => Eagletainer 
[last_cargo] => 1 
[vessel] => 
[insulation] => 1 
[tare] => 
[gross] => 
[capacity] => 
[unit_type] => IMO 1 
[date_of_manu] => 
[name_manu] => 
[last25] => 
[cert25] => 
[last5] => 
[cert5] => 
[list2_item_0] => 1 
[list2_kondisi_0] => 9 
[list3_item_0] => 15 
[list3_kondisi_0] => 3 
[comments] => 
) 

Мой случай, я хочу кусок много тех элементов массива в другой массив для insert_batch в моей базе данных. Это PHP-код, чтобы куске те массив:

public function get_partition($array, $p, $c) { 
    $partition = array_slice($array, $p); 
    array_pop($partition); 
    return $chunk = array_chunk($partition, $c); 
} 

Теперь, используйте его,

$detail = $this->get_partition($this->input->post(), 17, 2); 

Результат:

Array 
(
[0] => Array 
    (
     [0] => 1 
     [1] => 9 
    ) 

[1] => Array 
    (
     [0] => 15 
     [1] => 3 
    ) 

) 

Мой вопрос в том, как изменить ключ [0] и [1] в другую клавишу, такую ​​как [ID] и [CODE_DAMAGE]

Я хочу, чтобы они выглядели так:

Array 
(
[0] => Array 
    (
     [ID] => 1 
     [CODE_DAMAGE] => 9 
    ) 

[1] => Array 
    (
     [ID] => 15 
     [CODE_DAMAGE] => 3 
    ) 

) 
+0

повторно петлю конечного результата и сделать ассоциативный массив из него сделает ваша проблема решает ... – rahul

ответ

1

Re-цикла массив и достичь желаемого результата, как это:

$detail = $this->get_partition($this->input->post(), 17, 2); 
$new_array = array(); 
$count = 0; 
foreach($detail as $row){ 
    $new_array[$count]['ID'] = $row[0]; 
    $new_array[$count++]['CODE_DAMAGE'] = $row[1]; 
} 
0
<?php 
$array = array(0 => array(0 => 123, 1 => 1234), 1 => array(0 => 123, 1 => 1234)); 
$updatedArray = array(); 
foreach ($array as $k => $v) { 
    $updatedArray[$k]['ID'] = $v[0]; 
    $updatedArray[$k]['CODE_DAMAGE'] = $v[1]; 
} 
?> 

Try это, я надеюсь, это поможет.

0

Попробуйте это:

foreach($detail as $key => $value){ 
    if($key == 0){ 
     $detail['ID'] = $value; 
     unset($detail[$key]); 
    } 
    if($key == 1){ 
     $detail['CODE_DAMAGE'] = $value; 
     unset($detail[$key]); 
    } 
} 
0

Просто пример добавить массив к этому code..it будет работать нормально

$main = Array(Array(1,9),Array(15,3)); 
$b = array('ID', 'CODE_DAMAGE'); 
$new_array = array(); 
foreach($main as $subarray) 
{ 
    $new_array[] = array_combine($b, $subarray);   
} 
echo'<pre>';print_r($new_array); 
Смежные вопросы