Dalam tutorial ini, saya akan membuat daftar fungsi umum array PHP dengan contoh-contoh penggunaan dan praktek terbaik. Setiap pengembang PHP harus tahu bagaimana menggunakannya dan bagaimana menggabungkan fungsi array agar kode mudah dibaca dan singkat. Show Juga, ada presentasi dengan contoh kode yang diberikan, sehingga Anda dapat men-downloadnya dari link yang berhubungan dan menunjukkannya kepada kolega Anda untuk membangun tim yang lebih kuat. Dasar-DasarMari kita mulai dengan fungsi dasar yang bekerja dengan kunci dan nilai array. Salah satu dari mereka adalah array_combine(), yang menciptakan sebuah array menggunakan satu array untuk kunci dan satu lagi untuk nilai-nilai: $keys = ['sky', 'grass', 'orange']; $values = ['blue', 'green', 'orange']; $array = array_combine($keys, $values); print_r($array); // Array // ( // [sky] => blue // [grass] => green // [orange] => orange // ) Anda harus tahu, bahwa fungsi array_values() mengembalikan array dari nilai yang diindeks, array_keys() mengembalikan array dari kunci array yang diberikan, dan array_flip() menukar kunci dengan nilai-nilai: print_r(array_keys($array)); // ['sky', 'grass', 'orange'] print_r(array_values($array)); // ['blue', 'green', 'orange'] print_r(array_flip($array)); // Array // ( // [blue] => sky // [green] => grass // [orange] => orange // ) Membuat Kode Anda Lebih PendekFungsi list(), yang tidak benar-benar sebuah fungsi,
tetapi bahasa konstruksi, dirancang untuk menetapkan variabel dengan cara singkat. Sebagai contoh, berikut ini adalah contoh dasar menggunakan fungsi // define array $array = ['a', 'b', 'c']; // without list() $a = $array[0]; $b = $array[1]; $c = $array[2]; // with list() list($a, $b, $c) = $array; Konstruksi ini bekerja sempurna dengan fungsi seperti $string = 'hello|wild|world'; list($hello, , $world) = explode('|', $string); echo("$hello, $world"); // hello, world Juga, $arrays = [[1, 2], [3, 4], [5, 6]]; foreach ($arrays as list($a, $b)) { $c = $a + $b; echo($c . ', '); // 3, 7, 11, } Dengan fungsi extract(), Anda dapat mengekspor asosiatif array ke variabel. Untuk setiap elemen dari sebuah array, suatu variabel akan dibuat dengan nama kunci dan nilai sebagai nilai elemen: $array = [ 'clothes' => 't-shirt', 'size' => 'medium', 'color' => 'blue', ]; extract($array); echo("$clothes $size $color"); // t-shirt medium blue Sadarilah bahwa Kebalikan dari fungsi sebelumnya adalah fungsi compact(), yang membuat array asosiatif dari variabel: $clothes = 't-shirt'; $size = 'medium'; $color = 'blue'; $array = compact('clothes', 'size', 'color'); print_r($array); // Array // ( // [clothes] => t-shirt // [size] => medium // [color] => blue // ) Fungsi PenyaringanAda fungsi yang hebat bagi penyaringan array, dan itu disebut array_filter(). Menyampaikan array sebagai parameter pertama dan fungsi anonim sebagai parameter kedua.
Mengembalikan $numbers = [20, -3, 50, -99, 55]; $positive = array_filter($numbers, function($number) { return $number > 0; }); print_r($positive); // [0 => 20, 2 => 50, 4 => 55] Ada cara untuk menyaring tidak hanya oleh nilai-nilai. Anda dapat menggunakan Juga, Anda dapat memanggil $numbers = [-1, 0, 1]; $not_empty = array_filter($numbers); print_r($not_empty); // [0 => -1, 2 => 1] Anda
hanya bisa mendapatkan nilai-nilai unik dari array menggunakan fungsi array_unique(). Perhatikan bahwa fungsi ini akan menjaga kunci-kunci dari unsur-unsur unik pertama: $array = [1, 1, 1, 1, 2, 2, 2, 3, 4, 5, 5]; $uniques = array_unique($array); print_r($uniques); // Array // ( // [0] => 1 // [4] => 2 // [7] => 3 // [8] => 4 // [9] => 5 // ) Dengan array_column(), Anda bisa mendapatkan daftar nilai kolom dari sebuah array multi-dimensi, seperti jawaban dari database SQL atau
impor dari file CSV. Cukup menyampaikan array dan nama kolom: $array = [ ['id' => 1, 'title' => 'tree'], ['id' => 2, 'title' => 'sun'], ['id' => 3, 'title' => 'cloud'], ]; $ids = array_column($array, 'id'); print_r($ids); // [1, 2, 3] Mulai dari PHP 7, $cinemas = Cinema::find()->all(); $cinema_ids = array_column($cinemas, 'id'); // php7 forever! Berjalan Melalui ArrayMenggunakan array_map(), Anda dapat menerapkan callback untuk setiap elemen dari sebuah array. Anda dapat menyampaikan nama fungsi atau fungsi anonim untuk mendapatkan sebuah array baru berdasarkan pada array yang diberikan: $cities = ['Berlin', 'KYIV', 'Amsterdam', 'Riga']; $aliases = array_map('strtolower', $cities); print_r($aliases); // ['berlin', 'kyiv, 'warsaw', 'riga'] $numbers = [1, -2, 3, -4, 5]; $squares = array_map(function($number) { return $number ** 2; }, $numbers); print_r($squares); // [1, 4, 9, 16, 25] Ada mitos bahwa tidak ada cara untuk menyampaikan nilai-nilai dan kunci dari array ke callback, tapi kita bisa memecahkannya: $model = ['id' => 7, 'name'=>'James']; $callback = function($key, $value) { return "$key is $value"; }; $res = array_map($callback, array_keys($model), $model); print_r($res); // Array // ( // [0] => id is 7 // [1] => name is James // ) Tapi ini terlihat kotor. Sebaliknnya lebih baik untuk
menggunakan array_walk(). Fungsi ini terlihat sama seperti $fruits = [ 'banana' => 'yellow', 'apple' => 'green', 'orange' => 'orange', ]; array_walk($fruits, function(&$value, $key) { $value = "$key is $value"; }); print_r($fruits); // Array // ( // [banana] => banana is yellow // [apple] => apple is green // [orange] => orange is orange // ) Menggabungkan ArrayCara terbaik untuk menggabungkan dua atau lebih array dalam PHP adalah dengan menggunakan fungsi array_merge(). Item dari array-array akan digabungkan bersama-sama, dan nilai-nilai yang sama dengan string kunci akan ditimpa dengan nilai terakhir: $array1 = ['a' => 'a', 'b' => 'b', 'c' => 'c']; $array2 = ['a' => 'A', 'b' => 'B', 'D' => 'D']; $merge = array_merge($array1, $array2); print_r($merge); // Array // ( // [a] => A // [b] => B // [c] => c // [D] => D // ) Untuk menghapus nilai array dari array lain (atau array-array), gunakan array_diff(). Untuk mendapatkan nilai-nilai yang hadir dalam array yang diberikan, gunakan array_intersect(). Contoh berikutnya akan menunjukkan cara kerjanya: $array1 = [1, 2, 3, 4]; $array2 = [3, 4, 5, 6]; $diff = array_diff($array1, $array2); print_r($diff); // [0 => 1, 1 => 2] $intersect = array_intersect($array1, $array2); print_r($intersect); // [2 => 3, 3 => 4] Melakukan Perhitugan dengan Nilai-nilai ArrayGunakan array_sum() untuk mendapatkan jumlah nilai array, array_product() untuk melipatgandakan mereka, atau membuat rumus Anda sendiri dengan array_reduce(): $numbers = [1, 2, 3, 4, 5]; echo(array_sum($numbers)); // 15 echo(array_product($numbers)); // 120 echo(array_reduce($numbers, function($carry, $item) { return $carry ? $carry / $item : 1; })); // 0.0083 = 1/2/3/4/5 Untuk menghitung semua nilai dari array, gunakan array_count_values(). Itu akan memberikan semua nilai-nilai unik dari array yang diberikan sebagai kunci dan menghitung nilai-nilai tersebut sebagai nilai: $things = ['apple', 'apple', 'banana', 'tree', 'tree', 'tree']; $values = array_count_values($things); print_r($values); // Array // ( // [apple] => 2 // [banana] => 1 // [tree] => 3 // ) Menghasilkan ArrayUntuk menghasilkan sebuah array dengan ukuran tertentu dan nilai yang sama, gunakan array_fill(): $bind = array_fill(0, 5, '?'); print_r($bind); // ['?', '?', '?', '?', '?'] Untuk menghasilkan
sebuah array dengan berbagai kunci dan nilai-nilai, seperti hari jam atau huruf, gunakan range(): $letters = range('a', 'z'); print_r($letters); // ['a', 'b', ..., 'z'] $hours = range(0, 23); print_r($hours); // [0, 1, 2, ..., 23] Untuk mendapatkan bagian dari array—misalnya, hanya tiga unsur pertama—gunakan array_slice(): $numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; $top = array_slice($numbers, 0, 3); print_r($top); // [1, 2, 3] Penyortiran ArrayAda baiknya untuk diingat bahwa setiap fungsi penyortiran di PHP bekerja dengan array dengan referensi dan mengembalikan true pada keberhasilan atau false pada kegagalan. Ada fungsi penyortiran dasar yang disebut sort(), dan ia menyortir nilai dalam urutan menaik tanpa mengamankan kunci. Fungsi penyortiran dapat didahului oleh huruf-huruf berikut:
Anda dapat melihat kombinasi dari huruf-huruf ini di dalam tabel berikut:
Menggabungkan Fungsi Array Seperti BossSihir yang nyata dimulai ketika Anda mulai menggabungkan fungsi-fungsi array. Berikut adalah bagaimana Anda dapat memotong dan memindahkan nilai-nilai kosong hanya dalam satu baris kode dengan $values = ['say ', ' bye', ' ', ' to', ' spaces ', ' ']; $words = array_filter(array_map('trim', $values)); print_r($words); // ['say', 'bye', 'to', 'spaces'] Untuk membuat id ke judul peta dari array model, kita bisa menggunakan kombinasi dari $models = [$model1, $model2, $model3]; $id_to_title = array_combine( array_column($models, 'id'), array_column($models, 'title') ); Untuk mendapatkan tiga nilai-nilai
teratas dari sebuah array, kita dapat menggunakan $letters = ['a', 'a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd', 'd', 'd']; $values = array_count_values($letters); // get key to count array arsort($values); // sort descending preserving key $top = array_slice($values, 0, 3); // get top 3 print_r($top); // Array // ( // [d] => 5 // [a] => 4 // [b] => 2 // ) Ini mudah untuk menggunakan $order = [ ['product_id' => 1, 'price' => 99, 'count' => 1], ['product_id' => 2, 'price' => 50, 'count' => 2], ['product_id' => 2, 'price' => 17, 'count' => 3], ]; $sum = array_sum(array_map(function($product_row) { return $product_row['price'] * $product_row['count']; }, $order)); print_r($sum); // 250 KesimpulanSeperti yang Anda lihat, pengetahuan fungsi-fungsi utama array dapat membuat kode Anda jauh lebih pendek dan lebih mudah dibaca. Tentu saja, PHP memiliki lebih banyak fungsi array, dan bahkan fungsi yang diberikan memiliki banyak variasi untuk digunakan dengan parameter dan flag tambahan, tapi saya berpikir bahwa dalam tutorial ini kita telah membahas dasar-dasar yang setiap pengembang PHP harus mengetahuinya. Harap dicatat bahwa saya telah membuat sebuah presentasi dengan contoh yang diberikan, sehingga Anda dapat men-download-nya dari link terkait dan menunjukkannya kepada tim Anda. Jika Anda memiliki pertanyaan, jangan ragu untuk bertanya kepada mereka di komentar untuk artikel. Bacaan Lebih Lanjut dan Link Terkait
|