在PHP中组合和添加数组值
我有一个如下结构的数组:在PHP中组合和添加数组值,php,arrays,Php,Arrays,我有一个如下结构的数组: Array ( [0] => Array ( [0] => cmi.interactions.0.result [1] => 1 [2] => 0 ) [1] => Array ( [0] => cmi.interactions.0.result [1
Array
(
[0] => Array
(
[0] => cmi.interactions.0.result
[1] => 1
[2] => 0
)
[1] => Array
(
[0] => cmi.interactions.0.result
[1] => 0
[2] => 1
)
[2] => Array
(
[0] => cmi.interactions.0.result
[1] => 0
[2] => 1
)
[3] => Array
(
[0] => cmi.interactions.1.result
[1] => 1
[2] => 0
)
[4] => Array
(
[0] => cmi.interactions.1.result
[1] => 1
[2] => 0
)
[5] => Array
(
[0] => cmi.interactions.1.result
[1] => 1
[2] => 0
)
)
我想要的是:
Array
(
[0] => Array
(
[0] => cmi.interactions.0.result
[1] => 1
[2] => 2
)
[1] => Array
(
[0] => cmi.interactions.1.result
[1] => 3
[2] => 0
)
)
基本上,我想知道如何找到每个子数组中的第一个值匹配的位置,并相应地添加第二个和第三个值?类似的内容,没有检查它
$out = array();
foreach($arr as $el)
if (!isset($out[$el[0]]))
$out[$el[0]] = $el;
else
for($i = 1; $i < count($el); $i++)
$out[$el[0]][$i] += $el[$i];
$out=array();
外汇($arr为$el)
如果(!isset($out[$el[0]]))
$out[$el[0]]=$el;
其他的
对于($i=1;$i
之后可以删除键,如
$out=array\u值($out)代码>对于这种情况,可以使用以下算法:-
对数组排序
迭代数组,如果第0个元素已更改,则跟踪数组李>
在两个不同的变量中保持两个和
下面是算法的提示。我没有测试它,因此,它可能无法完全工作。但这应该给你一个很好的提示,让你继续下去
$prevValue="";
$sum1=0;
$sum2=0;
$index=0;
foreach ($arr as $value) {
if($prevValue==$value[0])
{
if(value[1]==1)
$sum1++;
if(value[2]==1)
$sum2++;
}else{
$ansArr[$index]=array($value[0], $sum1,$sum2);
}
$prevValue=$value[0];
}
给你。我们将第二个数组构建为$a2,并向其中添加元素,然后将总和累加到其中。在你的价值观上进行了测试
function parse($a)
{
$a2 = array();
for ($i = 0; $i < sizeof($a); $i++) {
$isFound = false;
for ($i2 = 0; $i2 < sizeof($a2); $i2++) {
if ($a[$i][0] == $a2[$i2][0]) {
// We've already run into this search value before
// So add the the elements
$isFound = true;
$a2[$i2][1] += $a[$i][1];
$a2[$i2][2] += $a[$i][2];
break;
}
}
if (!$isFound) {
// No matches yet
// We need to add this one to the array
$a2[] = $a[$i];
}
}
return $a2;
}
函数解析($a)
{
$a2=数组();
对于($i=0;$i
似乎非常可行,您有哪些代码尝试这样做?