如何在数组的开始和每4个元素之后插入一个值?


How do I insert a value at start and after every 4th element in an array using PHP?

PHP中有如下数组:

$myArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
"l", "m", "n", "o"];
  1. 我想插入一个新元素 ()1在同一数组中每隔第四个元素之后。
  2. 同样,数组将从1开始。

输出将是:

$myTest = [1, "a", "b", "c", "d", 1, "e", "f", "g", "h", 1, "i", "j",
"k", "l", 1, "m", "n", "o"];

请注意,在上面的数组中,每隔第4个元素后面加一个1。

同样,我不是只添加一次元素。每隔第4个元素,它就会被重复添加到数组的末尾。

您可以使用与函数array_splice相关联的模运算符来实现您的目标。

E。G:

<?php
$myTest= ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o"];
$added = 0;
for($i=1;$i<count($myTest);$i++){
   if($i%4 == 0){
      $temp = array(1);
      array_splice($myTest, ($i+$added), 0, $temp );
   }
}
print_r($myTest);
?>

我想这就是你要找的:

<?php
$myArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o"];
$myTest = [1, "a", "b", "c", "d", 1, "e", "f", "g", "h", 1, "i", "j",
"k", "l", 1, "m", "n", "o"];
for($i = 0; $i < count($myArray); $i+=4)
{
    array_splice($myArray, $i, 0, [1]);
    $i++;
}
print_r($myArray);
echo ('<br>'. ($myArray==$myTest));
?>
输出:

[1, "a", "b", "c", "d", 1, "e", "f", "g", "h", 1, "i", "j",
"k", "l", 1, "m", "n", "o"]
1

EDIT:附加要求

可以使用array_splice函数

$myArray = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o"];
$add = array(1);
for($i = 0; $i < count($myArray); $i+=4)
{
    array_splice($myArray, $i, 0, $add);
    $i++;
}
print_r($myArray);