Go back
7 months ago

Unpacking Array PHP 8 & PHP 8.1

Sebelum nya kita sama - sama tau, bahwa jika kita ingin menyatukan antara array pertama dan kedua bisa dengan menggunakan php built-in function.

Perhatikan syntax berikut.

$first = ['A', 'B'];
$second = ['C', 'D', 'E'];
$third = ['F', 'G', 'H', 'I'];
$forth = ['J'];

Biasanya, kita akan menggunakan array_merge untuk menyatukan mereka, seperti ini.

$array_merge = array_merge($first, $second, $third, $forth);
var_dump($array_merge);

Dan kita akan mendapatkan hasil seperti berikut

[0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [2]=>
  string(1) "C"
  [3]=>
  string(1) "D"
    ...

Apakah Anda tau, bahwa PHP versi 8, kita sudah bisa menggunakan teknik baru, yang mana itu sering disebut unpacking (Pembongkaran).

Kita akan masih menggunakan array yang sama, perhatikan.

$unpacking = [...$first, ...$second, ...$third, ...$forth];
var_dump($unpacking);

Dan Anda tau, kita akan mendapatkan hasil yang sama persis saat ketika kita memakai array_merge.

[0]=>
  string(1) "A"
  [1]=>
  string(1) "B"
  [2]=>
  string(1) "C"
  [3]=>
  string(1) "D"
    ...

Baik, tapi ini tidak cukup, pertanyaan nya, apakah unpacking array ini mendukung yang namanya Strings as keys of array. Mari kita coba.

Disini saya akan membuat 2 array yang berbeda saja, banyak kali soalnya harus nulis 4 hahaha.

$first = ['a' => 'A', 'b' => 'B'];
$second = ['c' => 'C', 'd' => 'D', 'e' => 'E'];

$unpacking = [...$first, ...$second];
var_dump($unpacking);

Dan sekarang Anda pasti diperlihat dengan error yang sangat disayangkan.

// PHP Error:  Cannot unpack array with string keys in 

Tetapi, jika Anda menggunakan PHP 8.1+, maka ini akan lewat, artinya ini akan berhasil layaknya yang kita harapkan.

array(5) {
["a"]=> string(1) "A"
["b"]=> string(1) "B"
["c"]=> string(1) "C"
["d"]=> string(1) "D"
["e"]=> string(1) "E"
}

Semoga artikel ini dapat menambah pengetahuan Anda. Sampai ketemu di artikel selanjutnya.