Php 将1个元素从一个数组推送到另一个数组
我知道这是可能的,但不确定我的处境。现在我有两个数组。一个是广告,另一个是活动。我想为每3个活动添加一个广告。简单解释他们目前的情况 事件数组:Php 将1个元素从一个数组推送到另一个数组,php,arrays,loops,sorting,Php,Arrays,Loops,Sorting,我知道这是可能的,但不确定我的处境。现在我有两个数组。一个是广告,另一个是活动。我想为每3个活动添加一个广告。简单解释他们目前的情况 事件数组: $Events =Array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7') ; 广告阵列: $Adverts =Array('Advert 1','Advert 2'); 目标阵列: $Target = Array('Event 1','Event 2'
$Events =Array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7') ;
广告阵列:
$Adverts =Array('Advert 1','Advert 2');
目标阵列:
$Target = Array('Event 1','Event 2','Event 3','Advert 1','Event 4','Event 5','Event 6','Advert 2');
我目前将事件数组分为三组。您要查找的是
数组拼接
这应该行得通
$event_array = ['Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7'];
$advert_array = ['Advert 1','Advert 2'];
//Push array value;
array_splice($event_array, 3, 0,array($advert_array[0]));
//Add to index 3
array_splice($event_array, 3, 0,$advert_array[0]);
print_r($event_array);
结果
Array ( [0] => Event 1 [1] => Event 2 [2] => Event 3 [3] => Advert 1 [4] => Event 4 [5] => Event 5 [6] => Event 6 [7] => Advert 2 )
您正在寻找
阵列拼接
这应该行得通
$event_array = ['Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7'];
$advert_array = ['Advert 1','Advert 2'];
//Push array value;
array_splice($event_array, 3, 0,array($advert_array[0]));
//Add to index 3
array_splice($event_array, 3, 0,$advert_array[0]);
print_r($event_array);
结果
Array ( [0] => Event 1 [1] => Event 2 [2] => Event 3 [3] => Advert 1 [4] => Event 4 [5] => Event 5 [6] => Event 6 [7] => Advert 2 )
你可以试试这个:
$Events =array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7') ;
$Adverts =array('Advert 1','Advert 2');
$Target =array();
$AdvertCount = 0;
foreach ($Events as $key => $Event) {
array_push($Target,$Event);
if (($key + 1) % 3 == 0) {
array_push($Target,$Adverts[$AdvertCount]);
$AdvertCount++;
}
}
print_r($Target);
你可以试试这个:
$Events =array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7') ;
$Adverts =array('Advert 1','Advert 2');
$Target =array();
$AdvertCount = 0;
foreach ($Events as $key => $Event) {
array_push($Target,$Event);
if (($key + 1) % 3 == 0) {
array_push($Target,$Adverts[$AdvertCount]);
$AdvertCount++;
}
}
print_r($Target);
最简单的方法之一是迭代
$Adverts
,并为$Adverts
的每个项目从$Events
中提取三个项目:
$Events = array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7');
$Adverts = array('Advert 1','Advert 2');
$Target = array();
// The current position in $Events
$i = 0;
foreach ($Adverts as $advert) {
// Append 3 events and the current advert
$Target = array_merge($Target, array_slice($Events, $i, 3), array($advert));
// Skip over the 3 events just processed
$i += 3;
}
为了确保不会耗尽事件,应该首先计算迭代次数。下面的代码只在3个事件+1个广告的完整组中放入$Target
// The number of events in each group
$nbEvents = 3;
// The number of groups; each group contains $nbEvents events + 1 advert
$nbGroups = min((int)(count($Events)/$nbEvents), count($Adverts));
$Target = array();
// Iterate over $Adverts but process only $nbGroups items
for ($i = 0; $i < $nbGroups; $i ++) {
// Append $nbEvents events and the current advert
$Target = array_merge(
$Target,
array_slice($Events, $nbEvents * $i, $nbEvents),
array($Adverts[$i])
);
}
//每个组中的事件数
$nbEvents=3;
//组数;每组包含$nbEvents事件+1个广告
$nbGroups=min((int)(计数($Events)/$nbEvents),计数($Adverts));
$Target=array();
//迭代$Adverts,但仅处理$nbGroups项目
对于($i=0;$i<$nbGroups;$i++){
//附加$nbEvents事件和当前广告
$Target=array\u merge(
美元目标,
数组_切片($Events,$nbEvents*$i,$nbEvents),
数组($Adverts[$i])
);
}
最简单的方法之一是迭代$Adverts
,并从$Events
中为$Adverts
的每个项目提取三个项目:
$Events = array('Event 1','Event 2','Event 3','Event 4','Event 5','Event 6','Event 7');
$Adverts = array('Advert 1','Advert 2');
$Target = array();
// The current position in $Events
$i = 0;
foreach ($Adverts as $advert) {
// Append 3 events and the current advert
$Target = array_merge($Target, array_slice($Events, $i, 3), array($advert));
// Skip over the 3 events just processed
$i += 3;
}
为了确保不会耗尽事件,应该首先计算迭代次数。下面的代码只在3个事件+1个广告的完整组中放入$Target
// The number of events in each group
$nbEvents = 3;
// The number of groups; each group contains $nbEvents events + 1 advert
$nbGroups = min((int)(count($Events)/$nbEvents), count($Adverts));
$Target = array();
// Iterate over $Adverts but process only $nbGroups items
for ($i = 0; $i < $nbGroups; $i ++) {
// Append $nbEvents events and the current advert
$Target = array_merge(
$Target,
array_slice($Events, $nbEvents * $i, $nbEvents),
array($Adverts[$i])
);
}
//每个组中的事件数
$nbEvents=3;
//组数;每组包含$nbEvents事件+1个广告
$nbGroups=min((int)(计数($Events)/$nbEvents),计数($Adverts));
$Target=array();
//迭代$Adverts,但仅处理$nbGroups项目
对于($i=0;$i<$nbGroups;$i++){
//附加$nbEvents事件和当前广告
$Target=array\u merge(
美元目标,
数组_切片($Events,$nbEvents*$i,$nbEvents),
数组($Adverts[$i])
);
}
好的,我们理解这个问题。现在让我们看看,你试过什么?比如,循环或任何数组函数???有无数种方法可以实现这个简单的目标。你尝试过什么?简单的映射和foreach循环lol我对php没有经验,所以我可能没有充分利用这两种方法好吧,我们理解了这个问题。现在让我们看看,你试过什么?比如,循环或任何数组函数???有无数种方法可以实现这个简单的目标。你尝试过什么?简单的映射和foreach循环lol我对php没有经验,所以我可能没有充分利用这两种方法在字段5Done中的错误输出谢谢:)这就说明了。。E、 E,E,A,A,E,E,E代替了E,E,E,A,E,E,E,E,E,E,E。非常接近,我可能会用它玩。谢谢。字段5的输出错误。谢谢:)这吐出来了。。E、 E,E,A,A,E,E,E代替E,E,E,A,E,E,E,E,E,A。非常接近,我可能会玩它,谢谢。