Message: implode(): Argument #2 ($array) must be of type ?array, string given
Halo teman-teman Sekolah Coding, saya mau menanyakan error diatas. Bagaimana agar bisa berhasil menggunakan implode pada sebuah multiselect yang datanya diambil dari data int(), apakah tetap bisa?
error

$query_span = $this->span_centralregion->get(); foreach($query_span->result() as $spn) { $span[$spn->span_id] = $spn->span_name; } $data = array( 'page' => 'add', 'row' => $ticket, 'span' => $span, 'selectedspan' => null, );
public function add($post) { $params = [ 'span_id' => implode("<>", $post['span']), ]; }
<div class="form-group"> <label><strong>Span ID*</strong></label> <?php echo form_dropdown('span', $span, $selectedspan, ['class' => 'form-control', 'required' => 'required', 'id' => 'select2-demo-3', 'data-plugin' => 'select2', 'multiple' => 'multiple', 'data-options' => '{ maximumSelectionLength: 2 }']) ?> </div>
atau respon:
Jawaban
// mungkin deklarasiin dulu $span sebagai array kosong, karena kemungkinan $query_span kosong $span = []; $query_span = $this->span_centralregion->get(); foreach($query_span->result() as $spn) { $span[$spn->span_id] = $spn->span_name; } $data = array( 'page' => 'add', 'row' => $ticket, 'span' => $span ?? [], 'selectedspan' => null, ); // untuk jaga jaga public function add($post) { if(!is_array($post['span'])) return 'bukan array'; $params = [ 'span_id' => implode("<>", $post['span']), ]; }
Terimakasih bang @driyan sudah mau meluangkan waktu buat balesin pertanyaan saya, baris kode'nya udah tak coba dan berhasil (untuk errror udh gak muncul lagi). Tapi saya masih bingung kenapa data yang masuk ke database masih berupa data tunggal ya, padahal udh pake multiselect & implode untuk pemisahnya. Apakah ini gara2 tipe tabel'nya INT bukan VARCHAR ya?


- Nilai dari argumen kedua dari implode itu harus berupa array. Misal: $array = ["satu","dua","tiga"]; echo implode(',', $array); Jadi, jika seandainya nilai dari $array itu bertipe selain array, maka akan menghasilkan error. Contoh: $array = 1; echo implode(',', $array); atau, $array = "string biasa"; echo implode(',', $array); Selengkapnya disini: https://www.php.net/manual/en/function.implode.php - @tompradana
Login untuk gabung berdiskusi
Pertanyaan Lainnya
Top Kontributor
- @ahanafi
795 Kontribusi 523 Poin
- @Nandar
647 Kontribusi 204 Poin
- @dianarifr
642 Kontribusi 316 Poin
- @Saputroandhi
509 Kontribusi 162 Poin
- @dodipsitorus
412 Kontribusi 145 Poin