【发布时间】:2014-01-17 00:38:37
【问题描述】:
假设我有一个多维数组:
Array
(
[0] => Array
(
[7,14] => 0.0,3.0
[5,11] => 0.0,5.0
[8,6] => 0.0,6.0
)
[1] => Array
(
[7,14] => 0.0,1.0
[5,11] => 1.0,3.0
[11,13] => 1.0,1.0
[6,8] => 1.0,0.0
)
我想形成一个新数组,其中键作为每个数组中所有键的联合,值作为这些联合键的对应值。如果仅在一个子数组中找到键,则用逗号填充 would-be 数据
即结果 ----------
Array
(
[7,14] => 0.0,3.0,0.0,1.0 // <--- union 0.0,3.0 and 0.0,1.0
[5,11] => 0.0,5.0,1.0,3.0
[8,6] => 0.0,6.0,,
[11,3] => 1,0,1.0,,
[6,8] => 1.0,0.0,,
)
这是我尝试过的。我已经非常接近正确答案了!
function combineValues($bigArray){
$combinedArray = array();
for($i = 0; $i < (count($bigArray) - 1); $i++) {
$keys = array_keys($bigArray[$i]);
for($j = 0; $j < count($keys); $j++){
$currentKey = $keys[$j];
if (isset($bigArray[$i+1][$currentKey]){
$combinedArray[$currentKey] = $bigArray[$i][$currentKey] + "," + $bigArray[$i+1][$currentKey];
} else {
}
}
}
return $combinedArray;
}
【问题讨论】:
-
具有唯一键的值有额外的逗号。重要吗?