Добавить значение кроме последнего элемента в массиве
Как добавить or после каждой итерации элемента кроме последнего ? Пробовал код ниже, но не работает
На выходе получить PG.pg_key = 1012789 or PG.pg_key = 1012789 or PG.pg_key = 1012789
public function returnArray() {
$array = [
"1" => "1012789",
"2" => "1012789",
"3" => "1012789"
];
foreach ($array as $key => $row) {
$str .= "PG.pg_key = {$row} ";
if($row != end($array)) {
$str .= " or ";
}
}
echo $str;
}
Ответы (1 шт):
Автор решения: Tunker
→ Ссылка
public function returnArray() {
$array = [
"1" => "1012789",
"2" => "1012789",
"3" => "1012789"
];
$pgarray = array_map(function ($v){
return "PG.pg_key = ".$v;
},$array ); // Добавляем к каждому элементу массива PG.pg_key =
$str = implode(" or ",$pgarray); // Объединяем элементы массива через or
echo $str;
}
или одной строкой (без дополнительных массивов)
public function returnArray() {
$array = [
"1" => "1012789",
"2" => "1012789",
"3" => "1012789"
];
$str = implode(" or ",array_map(function ($v){
return "PG.pg_key = ".$v;
},$array ));
echo $str;
}