作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组帖子 ID 和一组视频 ID。我需要将两者混合以获得类似“首先是一个视频,然后是 3 个普通帖子,然后是另一个视频,然后是 5 个普通帖子......重复......直到结束。(即:视频,正常,正常,正常,视频,正常*5 并重复..)
我的代码有效,但我怎样才能让它更简洁?
$a1 = $video_posts_arr;
$a2 = $standard_posts_arr;
$res = [];
$tc1 = count($a1);
$tc2 = count($a2);
$tc = $tc1 + $tc2;
$i1 = 0;
$i2 = 0;
for ($i = 0; $i < $tc; $i++) {
// first video
if (isset( $a1[$i1] )) {
array_push($res,$a1[$i1]);
$i1++;
}
// next 3 normals
if (isset( $a2[$i2]) ) {
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
}
// next video
if (isset( $a1[$i1] )) {
array_push($res,$a1[$i1]);
$i1++;
}
// next 5 normals
if (isset( $a2[$i2]) ) {
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
array_push($res,$a2[$i2]);
$i2++;
}
}```
最佳答案
从您的措辞中很难看出,但我假设您想在每个“视频”帖子之间来回切换 3 个“常规”帖子,然后是 5 个,然后是 3 个,依此类推。因此,当我们循环浏览视频帖子时,我们必须在这些选项之间来回切换,然后使用它加上标记/计数器来知道在常规帖子列表中插入每个视频帖子的位置。
$a1 = array("v1", "v2", "v3", "v4", "v5");
$a2 = array("p1", "p2", "p3", "p4", "p5", "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", "p16");
$skipNum = 3;
$currentPos = 1;
array_unshift($a2, array_shift($a1));
foreach($a1 as $v)
{
$currentPos+= $skipNum;
array_splice($a2, $currentPos, 0, $v);
$currentPos++;
if($skipNum == 3)
{
$skipNum = 5;
}
else
{
$skipNum = 3;
}
}
var_dump($a2);
关于php - 如何在数组php中使用规律性元素推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59382588/
我是一名优秀的程序员,十分优秀!