Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

como criar uma string separada por vírgula de uma matriz de resultados de consulta no php codeigniter


explode e implode estão funcionando conforme o esperado. O primeiro é usado para dividir uma string e retornar uma matriz com as peças, por exemplo.
 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 $pieces = explode(" ", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2

É por isso que você obtém isso:Array ( [0] => Array ( [0] => Palmilha Premium Shore 30 ) [1] => Array ( [0] => G Diabetic Premium fechado Sandal Black tamanho 09 ) ) quando você print $prdtarray (echo print_r($prdtarray); ). Cada vez que você chama $prdtarray[] = explode(",", $row1->product_name); você está criando um novo array com um elemento (apenas um elemento porque $row1->product_name não contém nenhum ",") e adicioná-lo a $prdtarray .

implode é usado para unir elementos da matriz com uma string, por exemplo
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

Em seu código, pois você tem dois arrays dentro de $prdtarray o resultado de $product é
 Array,Array

Assim, você pode salvar o $row1->product_name valor em uma matriz e, em seguida, use implode para criar um resultado de valores separados por vírgula. O código fica assim:
$this->db->select("product_name")
->from('sale_items')
->where('sale_items.sale_id',4221);
$q1 = $this->db->get();
if ($q1->num_rows() > 0) {
 foreach (($q1->result()) as $row1) {
$prdtarray[] = $row1->product_name;
}
$product=implode(',',$prdtarray); 
echo $product ; // Insole Premium Shore 30,G Diabetic Premium closed Sandal Black size 09