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. MrAmid - 15 Октября, 2015 - 16:33:28 - перейти к сообщению
Помогите пожалуйста!
Реализовать задачу определения знака зодиака и года по китайскому календарю пользователя с помощью массива.
Пользователь вводит данные (число, месяц и год рождения) через форму -
Выводить знак зодиака.
Если ввел неправильные данные - Выводить сообщение о том, что данные введены некорректно.

Файл с датами гороскопа.
2. Faraon-san - 15 Октября, 2015 - 16:50:51 - перейти к сообщению
а не проще сразу по дате определяет его знак зодиака и подставлять за него? и проверку делать не нужно.
3. MrAmid - 16 Октября, 2015 - 17:38:52 - перейти к сообщению
Faraon-san пишет:
а не проще сразу по дате определяет его знак зодиака и подставлять за него? и проверку делать не нужно.



может проще только как это выразить кодом?
4. andrewkard - 16 Октября, 2015 - 18:32:18 - перейти к сообщению
MrAmid
Как то так. Проверку ставьте сами и проверьте правильность вхождения дат. Подправьте.
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr_zodiac = array(
  3.     'Овен' => array('s'=>array('d'=>21,'m'=>3),'f'=>array('d'=>20,'m'=>4)),
  4.     'Телец' => array('s'=>array('d'=>21,'m'=>4),'f'=>array('d'=>21,'m'=>5)),
  5. );
  6.  
  7. $test_data = '23.04.2015';
  8. $test_time = strtotime($test_data);
  9. $year = date('Y',$test_time);
  10.  
  11. foreach ($arr_zodiac as $zodiac=>$arr){
  12.     if ($test_time > mktime(0, 0, 0, $arr['s']['m'], $arr['s']['d'], $year) &&
  13.         $test_time < mktime(0, 0, 0, $arr['f']['m'], $arr['f']['d'], $year)){
  14.         echo $zodiac;
  15.     }
  16. }
  17.  
5. Faraon-san - 17 Октября, 2015 - 01:27:42 - перейти к сообщению
andrewkard пишет:
($test_time > mktime(0, 0, 0, $arr['s']['m'], $arr['s']['d'], $year) &&
$test_time < mktime(0, 0, 0, $arr['f']['m'], $arr['f']['d'], $year))

Про равенство забыл.

 

Powered by ExBB FM 1.0 RC1