Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
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>
2 Jawaban:
<pre>// 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' =&gt; implode("&lt;&gt;", $post['span']),
];
}</pre>
<div>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? <br><br><figure data-trix-attachment="{"contentType":"image/png","filename":"image.png","filesize":29478,"height":495,"url":"https://i.ibb.co/5n1BvHQ/image.png","width":586}" data-trix-content-type="image/png" data-trix-attributes="{"presentation":"gallery"}" class="attachment attachment--preview attachment--png"><img src="https://i.ibb.co/5n1BvHQ/image.png" width="586" height="495"><figcaption class="attachment__caption"><span class="attachment__name">image.png</span></figcaption></figure></div>
Tanggapan
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