[英]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.