【发布时间】:2017-11-16 07:44:58
【问题描述】:
我有两个需要合并的数组的问题,其中第一个数组包含一个活动名称列表 ( page_data ),例如
[0 => "Campaign 1", 1 => "Campaign 2", 2 => "Campaign 3"]
和另一个包含活动潜在客户数量的数组。但是这个数组将包含两倍于活动数组的键,如下所示:
[0 => 222, 1 => 342, 2 => 71, 3 => 33, 4 => 43, 5 => 665]
它包含两倍的键,因为它会从两种不同的形式中获取线索,所以key 0 和 key 3 的值将用于活动 1,key 2 和 key 4 将用于活动 2。永远都是这样。如果有 5 个活动,潜在客户数组将有 10 个键,key 0 和 key 5 将用于活动 1,key 1 和 key 6 用于活动 2,等等。
然后我有这段代码要组合(推送):
foreach(json_decode($result) as $key) {
foreach($pages["page_data"] as $p => $pvalue) {
array_push($leadArray, array("pageName" => $pvalue["form_name"], "pageLeads" => $key[$p]));
}
}
这将使数组看起来像:
["campaign 1" => 222, "campaign 2" => 342, "campaign 3" => 71]
但这只会使用键 0,1,2,因此键 3,4,5 不会在数组中。
我想要的是线索数组中的键 0 和键 3、键 1 和键 4 等进行组合,因此新的线索数组将是
[0 => 255, 1 => 386, 2 => 736]
然后我可以将其与活动数组组合,因为两个数组中的键数现在将匹配,这将给我一个看起来像的数组
["campaign 1" => 255, "campaign 2" => 386, "campaign 3" => 736]
【问题讨论】:
-
我建议使用
for()而不是foreach()来处理如此复杂的数组,以使事情变得简单易处理。 -
您期望的输出是什么?您的问题在某些地方不清楚。
-
除了@RedBottle 的评论,似乎你需要模运算符...
标签: php arrays foreach array-push