考虑下面的多维数组:
Array
(
[submit] => yes
[id] =>
[booking_id] =>
[booking_type_id] => Array
(
[0] => 171
[1] => 58
)
[value] => Array
(
[0] => 23
[1] => 46
)
)
如何组合它以使booking_type_id和value数组在一个具有相同值的数组中:
Array
(
[new_values] => Array
(
[171] => 23
[58] => 46
)
)
我已经尝试过array_merge和array_combine,但我无法保留密钥?我也试图循环并添加到一个新数组。
答案 0 :(得分:3)
您是如何使用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'] );
答案 1 :(得分:2)
您可以使用array_combine()
这样的功能:
$array['new_values'] = array_combine($array['booking_type_id'], $array['new_values']);
答案 2 :(得分:1)
一个简单的解决方案是循环遍历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'] );
答案 3 :(得分:0)
<?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++;
}
?>
答案 4 :(得分:0)
$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
)
)