Я прошел через этот адрес:
Передача массива в запрос с использованием предложения WHERE
и обнаружил, что если я использую предложение join для разделения значений ,
также находится в конце массива. Как удалить последний?
Я так использую
$ttst=array(); $ttst=array(); $tt = "SELECT frd_id FROM network WHERE mem_id='$userId'"; $appLdone = execute_query($tt, true, "select"); foreach($appLdone as $kk=>$applist){ $ttst[] = $applist['frd_id']; } $result = implode(',', $ttst);
затем также наступает последний,
Благодарю.
но он не дает одинарной кавычки для каждого значения.
join(',', array_filter($galleries))
array_filter
избавляется от пустых элементов, которые у вас есть. Конечно, вы должны позаботиться о том, чтобы в нем не было пустых элементов.
Вы можете использовать trim()
(или rtrim()
):
$myStr = 'planes,trains,automobiles,'; $myStr = trim($myStr, ',');
$str = "orange,banana,apple,"; $str = rtrim($str,',');
Это приведет к
$str = "orange,banana,apple";
Основываясь на вашей ситуации:
$result = implode(',', $ttst); $result = rtrim($result,',');
$arr = array(...); $last = end($arr); unset($last);
Если конечный элемент «,» является элементом массива сам по себе, используйте array_pop () , else, используйте rtrim ()
$array = array('one','two',3,','); array_pop($array); print_r($array);
дает:
Массив ([0] => один 1 => два 2 => 3)
Нет необходимости в длине. Просто от начала до (последний символ – 1)
$finalResult = $str = substr($result, 0, -1);
Вместо этого используйте implode ()! См. Пример №1 здесь http://php.net/manual/en/function.implode.php
Редактировать:
Я думаю, что быстрое исправление (разбитое поэтапно):
$temp = rtrim(implode(',', $ttst), ','); //trim last comma caused by last empty value $temp2 = "'"; //starting quote $temp2 .= str_replace(",", "','", $temp); //quotes around commas $temp2 .= "'"; //ending quote $result = $temp2; // = 'apples','bananas','oranges'
Это должно дать вам одиночную кавычку вокруг строк, но обратите внимание, что если некоторые значения в массиве иногда пустые, вам, вероятно, придется написать цикл foreach
и построить строку.