【发布时间】:2020-11-11 13:26:16
【问题描述】:
我有 $row 输出以下内容。数组 0 - 4 不会因用户而异,但每个数组中的最后一项需要相加。
array (
0 => '2',
1 => 'Joe',
2 => 'Bloggs',
3 => 'joe.bloggs@mail.com',
4 => '1,2',
5 => 1,
6 => 0,
7 => 1,
)array (
0 => '2',
1 => 'Joe',
2 => 'Bloggs',
3 => 'joe.bloggs@mail.com',
4 => '1,2',
5 => 0,
6 => 1,
7 => 1,
)array (
0 => '1',
1 => 'Jane',
2 => 'Doe',
3 => 'jane.doe@mail.com',
4 => '1,4',
5 => 1,
6 => 0,
7 => 1,
)array (
0 => '1',
1 => 'Jane',
2 => 'Doe',
3 => 'jane.doe@mail.com',
4 => '1,4',
5 => 0,
6 => 0,
7 => 0,
)
我需要将它们组合成这样:
Array
(
[0] => 2
[1] => Joe
[2] => Bloggs
[3] => joe.bloggs@mail.com
[4] => 1,2
[5] => 1
[6] => 1
[7] => 2
)
Array
(
[0] => 1
[1] => Jane
[2] => Doe
[3] => jane.doe@mail.com
[4] => 1,4
[5] => 1
[6] => 0
[7] => 1
)
到目前为止我的代码是:
$combined = array();
foreach ($row as $item) {
if (!array_key_exists($item[0], $combined)) {
$combined[$item[0]] = $item;
} else {
array_push($combined, $item);
}
}
但这并没有达到我的预期。不确定该去哪里,所以任何帮助将不胜感激。
谢谢
【问题讨论】:
-
这能回答你的问题吗? PHP get the last 3 elements of an array
-
@BurhanKashour 这不是 OP 所要求的。
-
@Fazberry 您的解决方案甚至没有尝试总结这些值,您只是不断用最新的替换项目。此外,当您执行
array_push时,该元素将插入到下一个可用索引处。您的检查基于与用户 ID 相同的索引。如果你想那样做,那么废弃推送并在所需的索引处手动插入(基本上,你的if分支内容应该在else分支中,if分支应该做添加)。 -
@FazBerry 你能把你的数组粘贴到这里而不是打印出来的,这样我们就可以轻松插入它
-
@jerson 不太清楚你的意思。
标签: php