Rumah >pembangunan bahagian belakang >tutorial php >Amaran PHP: array_merge(): Penyelesaian hujah

Amaran PHP: array_merge(): Penyelesaian hujah

王林
王林asal
2023-06-22 23:54:241001semak imbas

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn