Php 将1个元素从一个数组推送到另一个数组

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'

我知道这是可能的,但不确定我的处境。现在我有两个数组。一个是广告,另一个是活动。我想为每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','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。非常接近,我可能会玩它,谢谢。