Добавить значение кроме последнего элемента в массиве

Как добавить 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;
}
→ Ссылка