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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Фильтр массива и создание нового

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Jack Daniels
Отправлено: 02 Февраля, 2018 - 18:07:35
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2018  


Помог: 0 раз(а)




Есть такая задача
Создать массив из 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. ?>


Но судя по всему некорректно. Помогите разобраться почему в моем решении нет верной логики
 
 Top
andrewkard
Отправлено: 02 Февраля, 2018 - 18:18:55
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Jack Daniels пишет:
Есть такая задача

Тест?

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

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

это зачем?

(Отредактировано автором: 02 Февраля, 2018 - 18:20:35)

 
 Top
Строитель Модератор
Отправлено: 02 Февраля, 2018 - 18:53:56
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Jack Daniels пишет:
Посчитать количество элементов массива , не используя count.
После цикла пропишите


И ещё по первому пункту не понятно - у вас $array = range(1, 100); и shuffle($array); создаётся массив чисел в случайном порядке, а по заданию требуется получить массив случайных чисел. Это надо бы уточнить.
 
 Top
Sail
Отправлено: 03 Февраля, 2018 - 14:46:58
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Jack Daniels, в вопросе четным/нечетным должно быть число, а не индекс массива.
Соответственно, выкиньте $key из кода.
array_count_values и shuffle - тоже в топку.
(Добавление)
Ах, да... ещё подсчитать...
Добавьте счетчик. Перед циклом - инициализировать его, например, $n = 0;
В цикле: $n++; (или $n+=1;, или $n = $n + 1;)
 
 Top
Jack Daniels
Отправлено: 05 Февраля, 2018 - 10:24:53
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Февр. 2018  


Помог: 0 раз(а)




Спасибо всем!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB