簡體   English   中英

將PHP中的數組與值組合

[英]Combine array in PHP with values

考慮下面的多維數組:

Array
(
[submit] => yes
[id] => 
[booking_id] => 
[booking_type_id] => Array
    (
        [0] => 171
        [1] => 58
    )

[value] => Array
    (
        [0] => 23
        [1] => 46
    )

)

如何合並它,以便booking_type_id和值數組位於一個具有相同值的數組中:

Array
(
    [new_values] => Array
        (
            [171] => 23
            [58] => 46
        )

)

我已經嘗試過array_merge和array_combine,但是我不能讓它保留密鑰嗎? 我也嘗試遍歷並添加到新數組。

您如何使用array_combine 那應該適合您想要的結構。 下面的例子:

$multi = array(
    'submit'          => 'yes',
    'id'              => '',    
    'booking_id'      => '', 
    'booking_type_id' => array( 171, 58 ),
    'value'           => array( 23, 46 ),
);

$combined = array_combine( $multi['booking_type_id'], $multi['value'] );

您可以像這樣使用array_combine()函數:

$array['new_values'] = array_combine($array['booking_type_id'], $array['new_values']);

一個簡單的解決方案是遍歷booking_type_id數組,並將這些值與新數組關聯booking_type_id並具有:

$array_1['booking_type_id'] = array(171,58);
$array_1['value'] = array(23,46);

$array_2 = array(); // new combined array

foreach ($array_1['booking_type_id'] as $key => $value) {
    $array_2[$value] = $array_1['value'][$key];
}

結果是:

Array
(
    [171] => 23
    [58] => 46
)

更新:

正如其他人已經指出的那樣,您也可以使用array_combine()完成相同的操作

$array_2 = array_combine( $array_1['booking_type_id'], $array_1['value'] );
<?php
    $i = 0;
    $new_values = array();
    while($i < count($your_array['booking_type_id']))
    {
        $new_values['new_values'][$your_array['booking_type_id'][$i]] = 
$your_array['value'];
        $i++;
    }
?>
$arr = array(
        'submit' => "yes",
        'id' => NULL,
        'booking_id' => NULL,
        'booking_type_id' => array(
                0 => 171,
                1 => 58
        ),  
        'value' => array(
                0 => 23,
                1 => 46
        )

);


$new_arr = array();
foreach($arr['booking_type_id'] as $key=>$value){

    $new_arr[$value] = $arr['value'][$key];

}
$arr['new_values'] =  $new_arr;

echo"<pre>";print_r($arr);

結果將是

Array
(
[submit] => yes
[id] => 
[booking_id] => 
[booking_type_id] => Array
    (
        [0] => 171
        [1] => 58
    )

[value] => Array
    (
        [0] => 23
        [1] => 46
    )

[new_values] => Array
    (
        [171] => 23
        [58] => 46
    )

)

暫無
暫無

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

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