Как манипулировать строкой в ​​PHP? - PullRequest
0 голосов
/ 02 ноября 2011

у меня такая ситуация:

 print_r($test);
 echo '<br>';
 $and = '';
 for ($i=0; $i<$count; $i++){
     $and.= ' u.room = '.$test[$i];
     $and.= ' OR ';
 }

результат будет:

Array ( [0] => 1 [1] => 3 [2] => 4 [3] => 5 [4] => 6 ) 

u.room = 1 OR u.room = 3 OR u.room = 4 OR u.room = 5 OR u.room = 6 OR

я хочу удалить последнее 'ИЛИ', чтобы строка стала: u.room = 1 OR u.room = 3 OR u.room = 4 OR u.room = 5 OR u.room = 6

есть идеи?

Спасибо

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Использование другого массива хорошо работает, используя implode для получения окончательной строки:

$clauses = array();
foreach($test as $t) {
   $clauses[] = "u.root = {t[$i]}";
}

$ands = implode(',', $clauses);

Однако, для вашего случая, когда это одно поле и несколько значений, вы можете перейти кэто другой прочь:

$in = implode(',', $test);

$sql = " ... WHERE u.room IN ($in)";
1 голос
/ 02 ноября 2011

Проще (хотя не совсем то же самое, если $test пусто):

$and = "u.room = " . implode(" OR u.room = ", $test);
1 голос
/ 02 ноября 2011
for ($i=0; $i<$count; $i++){
  $and.= ' u.room = '.$test[$i];

  if ($i != $count-1) {
    $and.= ' OR ';
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...