Подскажите где ошибку делаю
- Создайте 2 массива с целыми числами: по 5 и 7 элементов соответственно.
- Объедините 2 массива в 1.
- Выведите все чётные числа из получившегося массива
Код (Text):
<?php $arr1 = array(3,4,2,1,2); $arr2 = array(1,2,2,1,1,4,1); $arr = $arr1 + $arr2; for($i=0; $i<count($arr); $i++){ if($i%2==0){ echo $arr[$i]; } } ?>
Ты определись, четные числа ты выводишь, или четные элементы.
И да, соединение массивов через оператор сложения — штука, с которой можно в ногу выстрелить. Ты в курсе, что результирующий массив содержит не все исходные значения? Для слияния массивов лучше пользоваться функцией array_merge();
Поправил
if($i%2==0)
Спасиб.В курсе да. Там если индексы одинаковы, то берутся только значения первого массива, верно?
При том, что конечный массив заполнен остается не уникальными значениями. Это дрочь, в общем. Задолбаешься предсказывать ее поведение. Лучше юзай merge в паре с unique.
как это в паре с unique? Примерчик можете накидать?
Например по очереди.
Без примера не пойму.
Я тупой и только учусь
погугли
- как обьединить два массива php
- php какие бывают циклы
- php вывод четных чисел из массива
- php легко гуглить
Например так:
Код (Text):
$arr1 = array(3,4,2,1,2); $arr2 = array(1,2,2,1,1,4,1); //соединяем $new_array = array_merge($arr1, $arr2); //Убираем копии значений $new_array = array_unique($new_array);Ну а для перебора значений в массиве рекомендую https://php.ru/manual/control-structures.foreach.html
не поправил.
PHP:
if( $arr[$i] % 2 == 0 ) // вот так поправил— Добавлено —
не говори так больше о себе.
Да — я просто не поправил код — спасибо
Да эт так и есть)
— Добавлено —
Сделал вроде как показывали — в итоге распечатывает только 135
Мой кодКод (Text):
<?php $arr1 = array(1,3,5,3,2); $arr2 = array(4,3,4,2,1,2,1); $array = array_merge($arr1, $arr2); $array = array_unique($array); for($i=0; $i<count($array); $i++){ echo $array[$i]; }
Что вы сделали в коде ? где 4 ?
— Добавлено —
где 2?
Я просто объединить 2 массива в коде этом хочу. Без других условий. Что не так в коде у меня?
Уточню, объединить и вывести элементы через цикл.. Вот мне как новичку кажется, что я все верно сделал.
Но у меня не выводит все элементы объединенного масива. Вопрос. Почему?
Боже как же сложно ваше это программирование
Надо с включёнными ошибками программировать. Был бы notice, потому что array_unique сохраняет ключи, и цикл for уже не подходит. Выход: либо использовать foreach (что такое, гуглите сами), либо помимо array_unique применить ещё array_values (аналогично, гуглите сами, приучайтесь сразу)
А ты уверен, что он работает? Я чот там не вижу проверку на четность и нечетность элемента.
Этот самый случай, когда «работает, хот не должно». Да и не работает оно. Четные же надо вывести.
Я же ниже указал что не проверяю на четные, а просто хочу объединить 2 массива в коде этом и вывести элементы этого нового массива. Без других условий. Что не так в коде у меня?
Уже ведь написали, что цикл не тот используешь, вместо for используй foreach
PHP:
foreach($array as $value) { echo $value; }
Я все сделал теперь,
ВОт кодКод (Text):
<?php $arr1 = array(1,3,5,3,2); $arr2 = array(4,3,4,2,1,2,1); $array = array_merge($arr1, $arr2); $array = array_unique($array); array_values($array); foreach($array as $value) { echo $value; }Выводит
13524А должен по идее же
1,3,5,3,2,4,3,4,2,1,2,1
Почитай, что делают функции которые ты используешь, а в особенности функция array_unique. А потом ты мне и скажешь почему выводит 13524 вместо 1,3,5,3,2,4,3,4,2,1,2,1