Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Фильтр массива и создание нового
Форумы портала PHP.SU » » Вопросы новичков » Фильтр массива и создание нового

Страниц (1): [1]
 

1. Jack Daniels - 02 Февраля, 2018 - 18:07:35 - перейти к сообщению
Есть такая задача
Создать массив из 100 случайных чисел.(дальше работаем с ним). Посчитать количество элементов массива , не используя count. Отфильтровать массив так что бы четные числа записались в 1 масив нечетные в другой.

Я так реализовал
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $array = range(1,100);
  3. $even = array();
  4. $odd = array();
  5. shuffle($array);
  6. foreach($array as $key => $value){
  7.         if ($key % 2 == 0){
  8.                 $even[] = $value;
  9.         }else{
  10.                 $odd[] = $value;
  11.         }
  12. }
  13. print_r ($odd);
  14.  
  15. ?>


Но судя по всему некорректно. Помогите разобраться почему в моем решении нет верной логики
2. andrewkard - 02 Февраля, 2018 - 18:18:55 - перейти к сообщению
Jack Daniels пишет:
Есть такая задача

Тест?

Вроде норм. Перебор в лоб. Только сравнивать нужно значения а не ключи.

А без цикла сможете?
(Добавление)
Цитата:
array_count_values($array);

это зачем?
3. Строитель - 02 Февраля, 2018 - 18:53:56 - перейти к сообщению
Jack Daniels пишет:
Посчитать количество элементов массива , не используя count.
После цикла пропишите


И ещё по первому пункту не понятно - у вас $array = range(1, 100); и shuffle($array); создаётся массив чисел в случайном порядке, а по заданию требуется получить массив случайных чисел. Это надо бы уточнить.
4. Sail - 03 Февраля, 2018 - 14:46:58 - перейти к сообщению
Jack Daniels, в вопросе четным/нечетным должно быть число, а не индекс массива.
Соответственно, выкиньте $key из кода.
array_count_values и shuffle - тоже в топку.
(Добавление)
Ах, да... ещё подсчитать...
Добавьте счетчик. Перед циклом - инициализировать его, например, $n = 0;
В цикле: $n++; (или $n+=1;, или $n = $n + 1;)
5. Jack Daniels - 05 Февраля, 2018 - 10:24:53 - перейти к сообщению
Спасибо всем!

 

Powered by ExBB FM 1.0 RC1