Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Возникла интересная задача: формирование строки из нескольких
 
 автор: Полный Чайник   (02.02.2006 в 10:45)   письмо автору
 
 

Дано:
5 текстовых переменных $txt1, $txt2, $txt3, $txt4, $txt5 - они могут быть как пустыми т.е. $txtx = "", так и содержать какое-то значение, необходимо получить $text, которая формируется исходя из следующих условий:
1. если все переменные пустые значит она также пустая, т.е. возможно решение:

$text = $txt1..$txt2..$txt3..$txt4..$txt5

2. если хотябы одна переменная не пустая то в начале пишется переменная $txt_s
3. между непустыми переменными пишется переменная $txt_a

Вариант с кучей вложенных условий в данном случае неприемлем (ну я его и сам написать могу) хотелось бы получить более просто решение данной задачи.

Решать ее не настаиваю, просто по возможности если у кого то появится желание, то буду очень признателен.

Применение этой задачи - создание условия для mysql-запроса.

Upd: да как вариант возможен массив $txt[...]

   
 
 автор: cheops   (02.02.2006 в 14:00)   письмо автору
 
   для: Полный Чайник   (02.02.2006 в 10:45)
 

Я бы предложил такое решение
<?php 
  $txt
[] = $txt1;
  
$txt[] = $txt2;
  
$txt[] = $txt3;
  
$txt[] = $txt4;
  
$txt[] = $txt5;
  
$txt_s "begin:";
  
$txt_a ",";
  
$empty true;
  
$total count($txt);
  for(
$i 0$i $total$i++)
  {
    if(empty(
$txt[$i])) unset($txt[$i]);
    else 
$empty false;
  }
  if(
$empty$text "";
  else 
$text $txt_s.implode($txt_a,$txt);
  echo 
$text;
?>

   
 
 автор: Полный Чайник   (02.02.2006 в 14:17)   письмо автору
 
   для: cheops   (02.02.2006 в 14:00)
 

Да лично я решил эту задачу так:

<?php
$txt
[] = $txt1;
$txt[] = $txt2;
$txt[] = $txt3;
$txt[] = $txt4;
$txt[] = $txt5
$text "";
$txt_a " and ";
$txt_s "where ";


for (
$i=0$i<5$i++)
{
  if (
$txt[$i] != "")
  {
  
$text $text.$txt_a.$txt[$i];
  }
}

if (
$text != "")
{
$text substr($text5);
$text $txt_s.$text;
}

?>


так как я точно знал что у меня стоит в начале переменной, то сразу использовал функцию

$text = substr($text, 5);

а так естественно правильнее было бы определить длину переменной $txt_a;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования