> 백엔드 개발 > PHP 문제 > PHP 배열에서 요청 매개변수를 변환하는 방법

PHP 배열에서 요청 매개변수를 변환하는 방법

PHPz
풀어 주다: 2023-04-19 09:25:21
원래의
687명이 탐색했습니다.

PHP 개발에서는 데이터 전송을 위해 배열을 요청 매개변수로 변환해야 하는 경우가 많습니다. PHP 배열을 요청 매개변수로 변환하는 것은 PHP 개발에서 매우 일반적인 작업이자 불가피한 작업입니다. 이 기사에서는 PHP의 함수를 사용하여 배열을 요청 매개변수로 변환하는 방법을 소개합니다.

1. http_build_query 함수 사용

PHP에는 배열을 요청 매개변수로 변환하는 데 사용할 수 있는 http_build_query 함수가 내장되어 있습니다. http_build_query 함수는 URL 인코딩 후 배열을 쿼리 문자열로 변환하는 데 사용됩니다. 기본 구문은 다음과 같습니다.

string http_build_query ( mixed $query_data [, string $numeric_prefix [, string $arg_separator [, int $enc_type = PHP_QUERY_RFC1738 ]]] )
로그인 후 복사

그 중 query_data는 변환할 배열을 나타내며,numeric_prefix는 선택 사항입니다. 배열은 강제로 순수 숫자 인덱스로 변환됩니다. 키 이름, arg_separator는 배열 요소 사이의 구분 기호를 나타내고, enc_type은 URL 인코딩에 사용할 문자 집합을 나타내며 기본값은 PHP_QUERY_RFC1738입니다.

예를 들어 다음과 같은 배열이 있습니다.

$data = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
로그인 후 복사

http_build_query 함수를 사용하여 이를 다음 형식의 요청 매개변수로 변환할 수 있습니다.

name=Tom&age=20&gender=male
로그인 후 복사
로그인 후 복사

구체적인 사용법은 다음과 같습니다.

$data = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
$params = http_build_query($data);
echo $params;
로그인 후 복사

2. 요청 매개변수 함수

만약 PHP에 내장된 함수를 사용하고 싶지 않다면, 배열을 요청 매개변수로 변환하는 함수를 직접 작성할 수도 있습니다. 다음은 간단한 샘플 코드입니다.

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);
}
로그인 후 복사

이 함수를 호출하여 배열을 요청 매개변수로 변환할 수 있습니다. 샘플 코드는 다음과 같습니다.

$data = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
$params = array2param($data);
echo $params;
로그인 후 복사

출력 결과는 다음과 같습니다.

name=Tom&age=20&gender=male
로그인 후 복사
로그인 후 복사

3 http_build_query 및 배열을 사용합니다. 재귀 순회

http_build_query를 사용하면 다차원 배열을 처리할 때 배열 재귀 순회가 더 편리할 수 있습니다. 다음은 샘플 코드입니다.

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);
}
로그인 후 복사

사용 예:

$data = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male',
    'contact' => array(
        'email' => 'example@mail.com',
        'phone' => '1234567890'
    )
);
$params = array2param($data);
echo $params;
로그인 후 복사

출력 결과:

name=Tom&age=20&gender=male&contact%5Bemail%5D=example%40mail.com&contact%5Bphone%5D=1234567890
로그인 후 복사

Summary

PHP에서 배열을 요청 매개변수로 변환하는 것은 매우 일반적인 작업입니다. 이 기사에서는 세 가지 구현 방법, 즉 http_build_query 함수를 사용하고, 매개변수 함수를 요청하기 위해 직접 작성한 배열을 사용하고, http_build_query 및 배열 재귀 순회를 사용하는 방법을 소개합니다. 필요와 실제 상황에 따라 이를 처리하기 위해 다양한 방법을 선택할 수 있습니다.

위 내용은 PHP 배열에서 요청 매개변수를 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿