我想两个数组结合起来是这样的:
第一阵列:
array( "ATTENDED" => 1, "TENTATIVE" => 2, // "REJECTED" => 3, "OUTSTANDING" => 4, "ACCEPTED" => 6 );
第二阵:
array ( 1 => 29, 4 => 30, 6 => 47 );
我想要得到的结果是这样的:
array ( 'ATTENDED' => 29, 'OUTSTANDING' => 30, 'ACCEPTED' => 47 );
第二阵列是柔性的。 我可以翻转键和值。
或者更好的是:
array( "ATTENDED" => 29, "TENTATIVE" => 0, // "REJECTED" => 0, "OUTSTANDING" => 30, "ACCEPTED" => 47 );
我知道必须有一个简单的解决方案。 有任何想法吗?
foreach ($arr1 as $k1 => $v1) {
$arr1[$k1] = isset($arr2[$v1]) ? $arr2[$v1] : 0;
}
编辑 - 这是一个没有明确的循环,但我不认为这真是再好不过了,但也许冷却器虽然。
$mapped = array_map(function($valFromArr1) use ($arr2) {
return isset($arr2[$valFromArr1]) ? $arr2[$valFromArr1] : 0;
}, $arr1);
我想不出一个理智的办法只有用纯PHP函数。
$labels = array(
"ATTENDED" => 1,
"TENTATIVE" => 2,
"REJECTED" => 3,
"OUTSTANDING" => 4,
"ACCEPTED" => 6
);
$values = array(
1 => 29,
4 => 30,
6 => 47
);
$results = array();
foreach ($labels as $label => $id) {
$results[$label] = array_key_exists($id, $values) ? $values[$id] : 0;
}