Penyelesaian kepada Amaran PHP: array_merge(): Argumen
Dalam pembangunan PHP, kita sering menghadapi Amaran PHP: array_merge(): Mesej ralat argumen Apakah maksud ini?
Amaran PHP: array_merge(): Ralat hujah disebabkan kerana satu atau lebih parameter bukan daripada jenis tatasusunan. Fungsi array_merge() menggabungkan satu atau lebih tatasusunan, dan jika mana-mana parameter bukan daripada jenis tatasusunan, ralat Argumen akan berlaku.
Jadi bagaimana untuk menyelesaikan masalah ini? Berikut adalah beberapa kaedah untuk anda.
Kaedah 1: Periksa sama ada parameter adalah jenis tatasusunan
Sebelum menggunakan fungsi array_merge(), anda perlu memastikan bahawa parameter adalah jenis tatasusunan Anda boleh menggunakan is_array() fungsi untuk menentukan.
Sebagai contoh, dalam kod berikut, $arr1 dan $arr2 ialah kedua-dua jenis tatasusunan, tetapi $arr3 ialah jenis rentetan jadi ia akan menyebabkan ralat Argumen:
$arr1 = array('a', 'b', 'c'); $arr2 = array('d', 'e', 'f'); $arr3 = 'g, h, i'; $merged_arr = array_merge($arr1, $arr2, $arr3); // Argument错误
Oleh itu, kita perlu untuk menggunakan fungsi is_array () untuk menyemak sama ada parameter ialah jenis tatasusunan Jika tidak, ia boleh ditukar kepada jenis tatasusunan:
$arr1 = array('a', 'b', 'c'); $arr2 = array('d', 'e', 'f'); $arr3 = 'g, h, i'; if (is_array($arr3)) { $merged_arr = array_merge($arr1, $arr2, $arr3); } else { $arr3 = explode(',', $arr3); $merged_arr = array_merge($arr1, $arr2, $arr3); }
dinilai oleh fungsi is_array() Jika $arr3 bukan jenis tatasusunan, gunakan fungsi explode() untuk Menukar rentetan kepada jenis tatasusunan dan kemudian menggabungkannya.
Kaedah 2: Gunakan fungsi array_values()
Jika ralat Argumen berlaku, anda juga boleh cuba menggunakan fungsi array_values() untuk menukar parameter kepada jenis tatasusunan angka.
Sebagai contoh, dalam contoh berikut, $arr1 dan $arr2 ialah jenis tatasusunan bersekutu dan $arr3 ialah jenis tatasusunan angka:
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3); $arr2 = array('d' => 4, 'e' => 5, 'f' => 6); $arr3 = array(7, 8, 9); $merged_arr = array_merge($arr1, $arr2, $arr3); // Argument错误
Memandangkan $arr1 dan $arr2 ialah jenis tatasusunan bersekutu , $ arr3 ialah jenis tatasusunan angka, menyebabkan ralat Argumen. Oleh itu, anda boleh menggunakan fungsi array_values() untuk menukar $arr1 dan $arr2 kepada jenis tatasusunan angka, dan kemudian menggabungkannya:
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3); $arr2 = array('d' => 4, 'e' => 5, 'f' => 6); $arr3 = array(7, 8, 9); $arr1_values = array_values($arr1); // 数值数组类型 $arr2_values = array_values($arr2); // 数值数组类型 $merged_arr = array_merge($arr1_values, $arr2_values, $arr3);
Gunakan fungsi array_values() untuk menukar $arr1 dan $arr2 kepada tatasusunan angka jenis, dan kemudian cantumkan cantum.
Kaedah 3: Gunakan operator +
Gunakan operator + untuk menggabungkan tatasusunan untuk mengelakkan ralat Argumen, kerana operator + hanya akan menggabungkan nilai dalam tatasusunan kekunci baharu atau tukar kekunci sedia ada.
Sebagai contoh, dalam kod berikut, $arr1 dan $arr2 ialah kedua-dua jenis tatasusunan bersekutu dan $arr3 ialah jenis tatasusunan angka:
$arr1 = array('a' => 1, 'b' => 2, 'c' => 3); $arr2 = array('d' => 4, 'e' => 5, 'f' => 6); $arr3 = array(7, 8, 9); $merged_arr = $arr1 + $arr2 + $arr3;
Gunakan operator + untuk bergabung untuk mengelakkan Argumen penampilan kesilapan.
Ringkasnya, Amaran PHP: array_merge(): Ralat hujah disebabkan oleh satu atau lebih parameter yang bukan daripada jenis tatasusunan. Ralat hujah boleh dielakkan dengan menyemak sama ada hujah adalah jenis tatasusunan, menggunakan fungsi array_values() dan menggunakan operator +. Semasa menulis kod PHP, anda perlu memberi perhatian kepada ketepatan jenis parameter untuk mengelakkan ralat Argumen.
Atas ialah kandungan terperinci Amaran PHP: array_merge(): Penyelesaian hujah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!