簡體   English   中英

更改array_chunk php上的密鑰

[英]Change key on array_chunk php

我有這樣的基於數組的POST:

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
    )

 )

重新循環數組,以達到所需的結果,如下所示:

$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];
}

如果索引已經正確,則可以傳遞可選的第三個參數: http : //php.net/array_chunk

<?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];
}
?>

試試這個,希望對您有所幫助。

嘗試這個:

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

只是一個示例,將數組添加到此代碼中..它將很好地工作

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM