Вывести все чётные числа из получившегося массива.

Подскажите где ошибку делаю

  1. Создайте 2 массива с целыми числами: по 5 и 7 элементов соответственно.
  2. Объедините 2 массива в 1.
  3. Выведите все чётные числа из получившегося массива
Код (Text):
  1. <?php
  2. $arr1 = array(3,4,2,1,2);
  3. $arr2 = array(1,2,2,1,1,4,1);
  4. $arr = $arr1 + $arr2;
  5. for($i=0; $i<count($arr); $i++){
  6.     if($i%2==0){
  7.         echo $arr[$i];
  8.     }
  9. }
  10.    
  11. ?>
 

Ты определись, четные числа ты выводишь, или четные элементы.

И да, соединение массивов через оператор сложения — штука, с которой можно в ногу выстрелить. Ты в курсе, что результирующий массив содержит не все исходные значения? Для слияния массивов лучше пользоваться функцией array_merge();

 

Поправил
if($i%2==0)
Спасиб.

В курсе да. Там если индексы одинаковы, то берутся только значения первого массива, верно?

 

При том, что конечный массив заполнен остается не уникальными значениями. Это дрочь, в общем. Задолбаешься предсказывать ее поведение. Лучше юзай merge в паре с unique.

 

как это в паре с unique? Примерчик можете накидать?

 

Например по очереди.

 

Без примера не пойму.
Я тупой и только учусь

 

погугли

  1. как обьединить два массива php
  2. php какие бывают циклы
  3. php вывод четных чисел из массива
  4. php легко гуглить
 

Например так:

Код (Text):
  1. $arr1 = array(3,4,2,1,2);
  2. $arr2 = array(1,2,2,1,1,4,1);
  3. //соединяем
  4. $new_array = array_merge($arr1, $arr2);
  5. //Убираем копии значений
  6. $new_array = array_unique($new_array);

Ну а для перебора значений в массиве рекомендую https://php.ru/manual/control-structures.foreach.html

 

не поправил.

PHP:
  1. if( $arr[$i] % 2 == 0 ) // вот так поправил

— Добавлено —

не говори так больше о себе.

 

Да — я просто не поправил код — спасибо
Да эт так и есть)
— Добавлено —
Сделал вроде как показывали — в итоге распечатывает только 135
Мой код

Код (Text):
  1. <?php
  2. $arr1 = array(1,3,5,3,2);
  3. $arr2 = array(4,3,4,2,1,2,1);
  4. $array = array_merge($arr1, $arr2);
  5. $array = array_unique($array);
  6.  
  7. for($i=0; $i<count($array); $i++){
  8.     echo $array[$i];  
  9. }
 

Что вы сделали в коде ? где 4 ?
— Добавлено —
где 2?

 

Я просто объединить 2 массива в коде этом хочу. Без других условий. Что не так в коде у меня?

 

Уточню, объединить и вывести элементы через цикл.. Вот мне как новичку кажется, что я все верно сделал.
Но у меня не выводит все элементы объединенного масива. Вопрос. Почему?
Боже как же сложно ваше это программирование

 

Надо с включёнными ошибками программировать. Был бы notice, потому что array_unique сохраняет ключи, и цикл for уже не подходит. Выход: либо использовать foreach (что такое, гуглите сами), либо помимо array_unique применить ещё array_values (аналогично, гуглите сами, приучайтесь сразу)

 

А ты уверен, что он работает? Я чот там не вижу проверку на четность и нечетность элемента.
Этот самый случай, когда «работает, хот не должно». Да и не работает оно. Четные же надо вывести.

 

Я же ниже указал что не проверяю на четные, а просто хочу объединить 2 массива в коде этом и вывести элементы этого нового массива. Без других условий. Что не так в коде у меня?

 

Уже ведь написали, что цикл не тот используешь, вместо for используй foreach

PHP:
  1. foreach($array as $value) {
  2.      echo $value;
  3. }
 

Я все сделал теперь,
ВОт код

Код (Text):
  1. <?php
  2. $arr1 = array(1,3,5,3,2);
  3. $arr2 = array(4,3,4,2,1,2,1);
  4. $array = array_merge($arr1, $arr2);
  5. $array = array_unique($array);
  6. array_values($array);
  7. foreach($array as $value) {
  8.      echo $value;
  9. }

Выводит
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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *