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 :: Сделать необычную переменную [2]

 PHP.SU

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


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

> Без описания
Stop-TussiN
Отправлено: 09 Сентября, 2014 - 12:44:10
Post Id


Новичок


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


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




Tyoma5891 пишет:
единственный вопрос как определять в каком месте будет нужный нам падеж?)

Я планировал так сделать:
Нужный падеж определяется этим $gorod1, $gorod2 и т.д.

В город я хотел поставить это http://moskva.site.ru/
Я это вырезаю и вывожу таким образом echo $gorod, получается moskva

Выше я писал переменные:
$moskva1=Москвы
$moskva2=Москву

Осталось добавить цифру в gorod и все. НО как то сделать.
 
 Top
Tyoma5891
Отправлено: 09 Сентября, 2014 - 12:49:31
Post Id


Частый посетитель


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


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




dcc0 пишет:
Вестимо, ассоциативным массивом .
МассивГородПредлПадеж=Массив('Moscow => Москве, "Peter" => 'Петербурге')

идея интересная а как отслеживать в тексте на соответствие в этом массиве?
 
 Top
dcc0
Отправлено: 09 Сентября, 2014 - 14:00:11
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


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




Не для реального использования, для понимания общего смысла. Если будет в базе данных, то цикл, вероятно, не нужен будет, так как по селектору будет подгружаться город с падежами. Т.е. выбрали gorod[], где надо подгрузился gorod[1], gorod[4], и т.д.
Цифрами будет определятся падеж. Даже если мой вариант неудачный, надеюсь, приведет к верному решению:

PHP:
скопировать код в буфер обмена
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5.  <meta charset="utf-8">
  6.  <title></title>
  7.  <body>  
  8.   <form action="9.php" method="post">
  9.    <p><select size="3" multiple name="gorod">
  10.     <option disabled>Город</option>
  11.     <option value="Москва">Москва</option>
  12.     <option value="Тверь">Тверь</option>
  13.    </select></p>
  14.    <p><input type="submit" value="Отправить" name="sub"></p>
  15.   </form>
  16.  </body>
  17. </html>
  18. <?
  19.  $gor=array('Москва'=>'Москву', 'Тверь'=>'Тверь');
  20. $gorod=$_POST['gorod'];
  21.  if(isset($_POST['gorod'])) {
  22. foreach($gor as $k => $val) {
  23. if($gorod===$k) {
  24. echo "Я поеду в $val";
  25. break;
  26.    }
  27.  }
  28. }
  29. ?>
  30.  

(Добавление)
Либо так. Многомерным:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $gor = array ( "Москва" => array ( 'Москву', 'Москве',  'Москвой'),
  4.  "Тверь"   => array (  'Тверь', 'Твери','Тверях'));
  5. $gorod=$_POST['gorod'];
  6.   if(isset($_POST['gorod'])) {
  7. foreach($gor as $ka => $v) {
  8.  if($gorod===$ka) {
  9.    echo "Я поеду в " . $v[0];
  10.  echo "<br/>";
  11. echo "Я буду в " . $v[1];
  12. break;
  13. }
  14.  }
  15. }
  16. ?>
  17.  

Также для поиска решения этого вопроса.

(Отредактировано автором: 09 Сентября, 2014 - 14:04:57)



-----
Март 2021. Бросил программирование
 
 Top
avtor.fox
Отправлено: 09 Сентября, 2014 - 16:31:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




PHP:
скопировать код в буфер обмена
  1. $rgCity = array(
  2.     'Moscow'    => array(
  3.         'im'    => 'Москва',
  4.         'rod'   => 'Москвы',
  5.         'dat'   => 'Москве'
  6.     )
  7. );
  8.  
  9. function getPseudoMorphology($sString, $rgCity, $sCity = 'Moscow')
  10. {
  11.     $sNewString = preg_replace_callback('#{%(.*)%}#Ui', function($s) use ($rgCity, $sCity){
  12.         $rgParam = explode('|', next($s));
  13.         return $rgCity[$sCity][$rgParam[1]];
  14.     }, $sString);
  15.  
  16.     return $sNewString;
  17.  
  18. }
  19.  
  20. $sText = "Я был в {%city|dat%} и ел там людей. Купите обогреватель, доставка из {%city|rod%} бесплатно!";
  21.  
  22.     getPseudoMorphology($sText, $rgCity)
  23. );


Достаточно тяжёлый для обработки, но как пример сойдёт. Написан на коленке.
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB