#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);