我有两个这样的数组
数组1array(3) { [0]=> int(14) [1]=> int(16) [2]=> int(17) }
数组2
array(3) { [0]=> float(0.46902846738366) [1]=> float(0.40289063077504) [2]=> float(0.54903658244928) }
array 1是一个数组,它包含了关联数组值上的数据库表id。
14, 16, 17是我的数据库表的id。
array2 是一个数组,它包含了我所做的数学运算的结果。我有一个动态数组
所以我想
id 14的值为0.46902846738366
id 16的值为0.40289063077504
和
id 17的值为0.54903658244928
。然后将每个id存储在每个变量本身中。
如何组合这两个数组??谢谢你!
从你的问题组合数组你可以使用array_combine压缩数组在一起
<?php
$array_a = [14,16,17];
$array_b = [0.33333, 0.6434, 0.123456];
$zip_array = array_combine($array_a, $array_b);
这将回答你的问题,至于你的评论,如果你想让id作为变量的值,你可以这样做:
extract($zip_array, EXTR_PREFIX_ALL, 'id'); // extract all variable and prefix them with id_
print_r($zip_array);
echo $id_14; // the same as $zip_array[14];
这里我添加了"id"作为变量的前缀因为PHP中的变量不能是数字,你可以使用任何你想要的前缀
更新:对于@u_mulder,你也可以使用array_map(),更好的做法是
$zip_array = array_map(NULL, $array_a, $array_b);
但是在这种情况下你不能正确提取值
如果您希望一个数组用于键,另一个数组用于值,那么您可以使用array_combine
:
$result = array_combine(
array(14, 16, 17),
array(0.46902846738366, 0.40289063077504, 0.54903658244928)
);
如果您希望id
和value
作为子数组的元素,那么您可以使用array_map
:
$ids = array(14,16,17);
$vals = array(0.46902846738366, 0.40289063077504, 0.54903658244928);
$result = array_map(
function($id, $val) {
return array($id, $val);
},
$ids,
$vals
);
你在找这样的东西吗?假设两个数组的大小相同。你可以改变int
, float
,如果你不想强迫,想要一个字符串数组代替。
<?php
$array1 = array('1','24','98');
$array2 = array('0.8778','1.764646','6.9488499');
$result = array();
for($i=0;$i<sizeof($array1);$i++){
$result[] =array('0' =>(int)$array1[$i], '1' => (float)$array2[$i]);
}
var_dump($result);
输出array(3) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
float(0.8778)
}
[1]=>
array(2) {
[0]=>
int(24)
[1]=>
float(1.764646)
}
[2]=>
array(2) {
[0]=>
int(98)
[1]=>
float(6.9488499)
}
}
更好的做法是使用php函数,正如在其他答案中提到的。