#php #arrays
#php #массивы
Вопрос:
Я пытаюсь создать массив из 2 других массивов. У меня возникла проблема с их объединением вне их циклов.
Вот код для построения 2 массивов:
$redDogs = '3';
$blueDogs = '2';
$i = 1;
// build red dogs array
$redDogs = (int)$redDogs;
while($i <= $redDogs) {
$reds[] = 'red_dog_' . $i ;
}
foreach ($reds as $red) {
print '<pre>'; print_r($red); print '</pre>';
}
$j = 1;
// build blue dogs array
$blueDogs = (int)$blueDogs;
while($j <= $blueDogs) {
$blues[] = 'blue_dog_' . $j ;
}
foreach ($blues as $blue) {
print '<pre>'; print_r($blue); print '</pre>';
}
Как я мог бы создать массив, подобный:
print_r($alldogs);
Для получения следующего вывода:
Array {
[0] => red_dog_1
[1] => red_dog_2
[2] => red_dog_3
[3] => blue_dog_1
[4] => blue_dog_2
}
Я пробовал array_merge ($ red, $ blue), но, похоже, не получаю никаких значений.
Любая помощь приветствуется.
Комментарии:
1.
$merged = $reds $blues;
2.
$comb = array_merge($reds, $blues); var_dump($comb);
3.
array_merge
возвращает новый объединенный массив. Так что, если вы просто звонитеarray_merge($red, $blue)
сами по себе, это ничего не даст. И в зависимости от того, что вы хотите сделать, union () также может работать. Разница в том, что объединение не будет перезаписывать существующие ключи, а слияние будет. Также слияние добавит цифровые клавиши с повторной индексацией, в то время как объединение пропустит те места, где они совпадают.
4. карго-культовое программирование:
$blueDogs = '2'; $blueDogs = (int)$blueDogs
. Если вам нужны были целые числа, почему вы просто не ОПРЕДЕЛИЛИ их как целые числа в первую очередь?$blueDogs = 2
5. Неужели? sandbox.onlinephpfunctions.com/code /…
Ответ №1:
$redDogs = '3';
$blueDogs = '2';
$i = 1;
// build red dogs array
$redDogs = (int)$redDogs;
while($i <= $redDogs) {
$reds[] = 'red_dog_' . $i ;
}
$j = 1;
// build blue dogs array
$blueDogs = (int)$blueDogs;
while($j <= $blueDogs) {
$blues[] = 'blue_dog_' . $j ;
}
print_r(array_merge($reds, $blues));
Объедините свой массив перед циклическим переходом по массиву.
Ваши операторы foreach преобразовывали ваш массив в строки.
Комментарии:
1. Всегда лучше включить объяснения, почему ваш пример кода отвечает на вопрос, чем просто опубликовать некоторый код.