sql >> Base de Datos >  >> RDS >> Mysql

cómo crear una cadena separada por comas a partir de una matriz de resultados de consulta en php codeigniter

explode y implode están funcionando como se esperaba. El primero se usa para dividir una cadena y devolver una matriz con las piezas, por ejemplo,

 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 $pieces = explode(" ", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2

Por eso te sale esto:Array ( [0] => Array ( [0] => Plantilla Premium Shore 30 ) [1] => Array ( [0] => G Diabetic Premium cerrado Sandalia Negra talla 09 ) ) cuando imprimir $prdtarray (echo print_r($prdtarray); ). Cada vez que llame a $prdtarray[] = explode(",", $row1->product_name); está creando una nueva matriz con un elemento (solo un elemento porque $row1->product_name no contiene ningún ",") y agregarlo a $prdtarray .

implode se utiliza para unir elementos de matriz con una cadena, por ejemplo,

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

En su código, ya que tiene dos matrices dentro de $prdtarray el resultado de $product es

 Array,Array

Entonces, puede guardar el $row1->product_name valor en una matriz y luego use implode para crear un resultado de valores separados por comas. El código se ve así:

$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