explode
và implode
đang hoạt động như mong đợi. Đầu tiên được sử dụng để tách một chuỗi và trả về một mảng với các phần, ví dụ:
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
Đó là lý do tại sao bạn nhận được điều này:Array ([0] => Array ([0] => Insole Premium Shore 30) [1] => Array ([0] => G Diabetic Premium đóng Sandal đen size 09)) khi bạn print $ prdtarray (echo print_r($prdtarray);
). Mỗi lần bạn gọi $prdtarray[] = explode(",", $row1->product_name);
bạn đang tạo một mảng mới với một phần tử (chỉ một phần tử vì $row1->product_name
không chứa bất kỳ ",") nào và thêm nó vào $prdtarray
.
implode
được sử dụng để nối các phần tử mảng với một chuỗi, ví dụ:
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
Trong mã của bạn vì bạn có hai mảng bên trong $prdtarray
kết quả của $product
là
Array,Array
Vì vậy, bạn có thể lưu $row1->product_name
giá trị trong một mảng và sau đó sử dụng implode
để tạo kết quả các giá trị được phân tách bằng dấu phẩy. Mã trông như thế này:
$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