Home >Backend Development >PHP Problem >Can arrays be passed through the get method in php?

Can arrays be passed through the get method in php?

青灯夜游
青灯夜游Original
2023-01-29 19:31:463773browse

Can. URLs can pass associative arrays or subscript arrays; in PHP, you can use the http_build_query() function to pass arrays in the URL through the get method. http_build_query() is used to generate a URL-encoded query string from an associated (or indexed) array, with the syntax "http_build_query($query_data,$numeric_prefix,$arg_separator,$enc_type)".

Can arrays be passed through the get method in php?

The operating environment of this tutorial: windows7 system, PHP8 version, DELL G3 computer

Use the get method under PHP Passing an array in the URL

#You can pass an associative array or a subscript array in the URL.

The simplest way is to use the http_build_query() function that comes with PHP

$parameters = [
'user' => array(
        'name' => 'Bob Smith',
        'age'  => 47,
        'sex'  => 'M',
        'dob'  => '5/12/1956'
    ),
    'pastimes' => array('golf', 'opera', 'poker', 'rap'),
    'children' => array(
        'bobby' => array('age'=>12, 'sex'=>'M'),
        'sally' => array('age'=>8, 'sex'=>'F')
    ),
    'CEO'
];

// 这里两种数组的方式能够进行混用定义,没有问题

http_build_query($data);
// 注意这里的结果会将参数中的特殊字符进行转义形成最终的结果查询串

还有就是直接进行参数拼接

Start passing parameters with the ? declaration, and use & to connect each Parameters

eg.

https://www.baidu.com?a=1&b=2&c=3

If you want to pass an array, you can Use the following method:

https://www.baidu.com?a[0]=0&a[1]=1&a[2]=2&a[3]=3&a[4]=4
https://www.baidu.com?a[q]=0&a[w]=1&a[e]=2&a[r]=3&a[t]=4

Note that the square brackets here need to be escaped, otherwise transmission errors may occur.

Extended knowledge: http_build_query() introduction

http_build_query() function is a built-in function in PHP, used to retrieve data from association ( or index) array to generate a URL-encoded query string.

Usage:

string http_build_query( $query_data, $numeric_prefix, $arg_separator, $enc_type = PHP_QUERY_RFC1738 )

Parameters: This function accepts the four parameters described above and below

  • $query_data: This parameter saves an array or object containing the following properties:
    • It can be a one-dimensional array or a multi-dimensional array.
    • If $query_data is an object, only public properties are merged into the result.
  • $numeric_prefix:Use this parameter if a numeric index is used in the base array, it will only precede the numeric index of the element in the base array.
  • $arg_separator:It is used to separate arguments, but this can be overridden by specifying this argument.
  • $enc_type:The default value is PHP_QUERY_RFC1738.

Return value: It returns the URL encoded string.

The following example program is intended to illustrate the http_build_query() function in PHP:

Program 1:

<?php 
$info = array( 
    'sudo' => 'placement', 
    'CPP' => 'course', 
    'FORK' => 'C', 
); 
  
echo http_build_query($info) . "#"; 
echo http_build_query($info, '', '&'); 
  
?>

Output:

sudo=placement&CPP=course&FORK=C#sudo=placement&CPP=course&FORK=C

Program 2:

<?php 
$info = array('geeks', 'gfg' => 'sudo', 'placement' => 'hypertext processor'); 
  
echo http_build_query($info) . "$"; 
echo http_build_query($info, 'myvar_'); 
?>

Output:

0=geeks&gfg=sudo&placement=hypertext+processor$myvar_0=geeks&gfg=sudo&placement=hypertext+processor

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of Can arrays be passed through the get method in php?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn