Dalam pembangunan PHP, kita selalunya perlu menukar tatasusunan kepada parameter permintaan untuk penghantaran data. Menukar tatasusunan PHP kepada parameter permintaan adalah operasi yang sangat biasa dan operasi yang tidak dapat dielakkan dalam pembangunan PHP. Artikel ini akan memperkenalkan cara menggunakan fungsi dalam PHP untuk menukar tatasusunan kepada parameter permintaan.
1. Gunakan fungsi http_build_query
PHP mempunyai fungsi http_build_query terbina dalam, yang boleh digunakan untuk menukar tatasusunan kepada parameter permintaan. Fungsi http_build_query digunakan untuk menukar tatasusunan kepada rentetan pertanyaan yang dikodkan URL Sintaks asasnya adalah seperti berikut:
string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
Antaranya, query_data mewakili tatasusunan yang akan ditukar, dan awalan_angka adalah pilihan. , yang bermaksud memaksa tatasusunan Nama kunci ditukar kepada indeks angka tulen, arg_separator mewakili pemisah antara elemen tatasusunan, enc_type mewakili set aksara yang digunakan untuk pengekodan URL dan lalai ialah PHP_QUERY_RFC1738.
Sebagai contoh, kami mempunyai tatasusunan berikut:
$data = array( 'name' => 'Tom', 'age' => 20, 'gender' => 'male' );
Kami boleh menggunakan fungsi http_build_query untuk menukarnya menjadi parameter permintaan dalam format berikut:
name=Tom&age=20&gender=male
Penggunaan khusus adalah seperti berikut:
$data = array( 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ); $params = http_build_query($data); echo $params;
2 Tatasusunan tulisan tangan untuk meminta fungsi parameter
Jika kita tidak mahu menggunakan fungsi terbina dalam PHP, kita juga boleh menulis fungsi. untuk menukar tatasusunan kepada parameter permintaan. Berikut ialah kod sampel mudah:
function array2param($data) { $params = array(); foreach ($data as $key => $value) { if (is_array($value)) { $params[] = array2param($value); } else { $params[] = urlencode($key) . '=' . urlencode($value); } } return implode('&', $params); }
Kita boleh memanggil fungsi ini untuk menukar tatasusunan kepada parameter permintaan Kod sampel adalah seperti berikut:
$data = array( 'name' => 'Tom', 'age' => 20, 'gender' => 'male' ); $params = array2param($data); echo $params;
Hasil output ialah seperti berikut:
name=Tom&age=20&gender=male
3 Gunakan http_build_query dan tatasusunan rekursif traversal
Menggunakan http_build_query dan tatasusunan rekursif traversal boleh menjadi lebih mudah apabila memproses tatasusunan berbilang dimensi. Berikut ialah kod sampel:
function array2param($data) { $queryData = array(); // 将生成的字符串数组 foreach ($data as $key => $value) { if (is_array($value)) { $queryData[] = http_build_query(array($key => $value)); // 处理多维数组 } else { $queryData[] = urlencode($key) . '=' . urlencode($value); } } return implode('&', $queryData); }
Contoh penggunaan:
$data = array( 'name' => 'Tom', 'age' => 20, 'gender' => 'male', 'contact' => array( 'email' => 'example@mail.com', 'phone' => '1234567890' ) ); $params = array2param($data); echo $params;
Hasil keluaran:
name=Tom&age=20&gender=male&contact%5Bemail%5D=example%40mail.com&contact%5Bphone%5D=1234567890
Ringkasan
Dalam PHP, tambah Menukar tatasusunan kepada parameter permintaan adalah operasi yang sangat biasa. Artikel ini memperkenalkan tiga kaedah pelaksanaan yang berbeza, iaitu menggunakan fungsi http_build_query, tatasusunan tulisan tangan untuk meminta fungsi parameter dan menggunakan http_build_query dan traversal rekursif tatasusunan. Bergantung kepada keperluan dan situasi sebenar, kaedah yang berbeza boleh dipilih untuk mengendalikannya.
Atas ialah kandungan terperinci Bagaimana untuk menukar parameter permintaan daripada tatasusunan php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!