Как мне добавить элемент между всеми другими элементами в массиве

#php #arrays

#php #массивы

Вопрос:

У меня вопрос, допустим, у меня есть этот массив:

 $array = ["one", "two", "three", "four"];
 

И я хочу добавить "test" между элементами в массив, чтобы он стал таким:

 $array = ["test", "one", "test", "two", "test", "three", "test", "four"];
 

Мой текущий способ сделать это — сделать это:

 $array = ["one", "two", "three", "four"];
$newArray = "test." . implode("test.", $array);
$newArray = explode(".", $newArray);
 

Но мне нужен более чистый способ, может кто-нибудь мне помочь, пожалуйста?

Комментарии:

1. В вашем примере $newArray это строка, а не массив.

2. Извините, я забыл добавить строку $newArray = explode(".", $newArray); , я отредактировал сообщение.

3. Просто foreach() цикл — это самое простое.

4. Определите «очиститель». Это простое решение, его легко понять и оно выполняет свою работу. Что вы хотите улучшить?

5. Это правда, хотя я использую foreach() путь, так как это также лучше на случай, если в одном из элементов есть точка.

Ответ №1:

 $array = [...]; // Defined in question
$newArray = [];
foreach ($array as $key => $value) {
    $even = $key * 2;
    $odd = $even   1;
    $newArray[$odd] = $value;
    $newArray[$even] = "test";

    // Or just reusing $key
    // $key *= 2;
    // $newArray[$key   1] = $value;
    // $newArray[$key] = "test";
}
var_dump($newArray);