array mati, vektor hack!

Menarik dari standup hari ini; seorang engineer ingin menyaring array dan menghapus semua nilai null.

Mengingat array seperti ini:

[code lang=text]$alpha = [null, ‘b’, ‘c’];[/code]

Dia mencoba untuk menyaring nilai-nilai dengan kode ini:

[code lang=text]array_filter($alpha, function($val) { return !is_null($val);});[/code]

Masalahnya adalah dia berharap $alpha[0] menjadi 'b'... sayangnya array terlihat seperti ini:

[code lang=text][ 1 => ‘b’, 2 => ‘c’ ][/code]

Ini adalah pengingat bahwa array_filter mempertahankan keys. Jika anda ingin mengabaikan kunci, anda harus memanggil array_values pada hasil.

Kemudian array akan bagus dan padat.:

[code lang=text]array_filter($alpha, function($val) { return !is_null($val);});$alpha = array_values($alpha);// [ 0 => ‘b’, 1 => ‘c’ ][/code]

Tapi,

Mengapa ada orang yang menggunakan array? Mereka sudah tua dan usang, mari kita gunakan Vektor dari HHVM! Vektor Hack ini bekerja seperti yang Anda harapkan, untuk mendapatkan array dengan keys baru.

[code lang=text]$alpha_vector = new HH\Vector($alpha)$alpha_vector->filter(function($e) { return !is_null($e);});// [ 0 => ‘b’, 1 => ‘c’ ][/code]

Jauh lebih cantik! Terimakasih Zuck untuk HHVM!