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>
avatar vesaldiy
@vesaldiy

6 Kontribusi 0 Poin

Diperbarui 2 tahun yang lalu

2 Jawaban:

<pre>// mungkin deklarasiin dulu $span sebagai array kosong, karena kemungkinan $query_span kosong $span = []; $query_span = $this-&gt;span_centralregion-&gt;get(); foreach($query_span-&gt;result() as $spn) { $span[$spn-&gt;span_id] = $spn-&gt;span_name;
}

$data = array( 'page' =&gt; 'add', 'row' =&gt; $ticket, 'span' =&gt; $span ?? [], 'selectedspan' =&gt; null, );

// untuk jaga jaga public function add($post) { if(!is_array($post['span'])) return 'bukan array'; $params = [

&#039;span_id&#039; =&amp;gt; implode(&quot;&amp;lt;&amp;gt;&quot;, $post[&#039;span&#039;]), 

]; 

}</pre>

avatar driyan
@driyan

193 Kontribusi 109 Poin

Dipost 2 tahun yang lalu

<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 &amp; implode untuk pemisahnya. Apakah ini gara2 tipe tabel'nya INT bukan VARCHAR ya?&nbsp;<br><br><figure data-trix-attachment="{&quot;contentType&quot;:&quot;image/png&quot;,&quot;filename&quot;:&quot;image.png&quot;,&quot;filesize&quot;:29478,&quot;height&quot;:495,&quot;url&quot;:&quot;https://i.ibb.co/5n1BvHQ/image.png&quot;,&quot;width&quot;:586}" data-trix-content-type="image/png" data-trix-attributes="{&quot;presentation&quot;:&quot;gallery&quot;}" 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>

avatar vesaldiy
@vesaldiy

6 Kontribusi 0 Poin

Dipost 2 tahun yang lalu

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

Login untuk ikut Jawaban