您好,登錄后才能下訂單哦!
今天小編給大家分享一下php中怎么使用get方式傳數組的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
URL是可傳遞關聯數組,也可傳遞下標數組;而PHP中可以利用http_build_query()函數來通過get方式在URL中傳遞數組。http_build_query()用于從關聯(或索引)數組生成URL編碼的查詢字符串,語法“http_build_query($query_data,$numeric_prefix,$arg_separator,$enc_type)”。
PHP下利用get方式在URL中傳遞數組
在URL可以傳遞關聯數組,也可傳遞下標數組。
最簡單的方式就是使用PHP 自帶的 http_build_query()函數
$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);
// 注意這里的結果會將參數中的特殊字符進行轉義形成最終的結果查詢串
還有就是直接進行參數拼接
以?
申明開始傳遞參數,用&
連接各個參數
eg.
https://www.baidu.com?a=1&b=2&c=3
對于如果希望傳遞數組可以使用以下方式:
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
注意這里的方括號需要進行轉義,否則可能出現傳遞錯誤的情況。
擴展知識:http_build_query()介紹
http_build_query()函數是PHP中的內置函數,用于從關聯(或索引)數組生成URL編碼的查詢字符串。
用法:
string http_build_query( $query_data, $numeric_prefix, $arg_separator, $enc_type = PHP_QUERY_RFC1738 )
參數:該函數接受上述和以下所述的四個參數
$query_data:此參數保存包含以下屬性的數組或對象:
它可以是一維數組或多維數組。
如果$query_data是對象,則僅將公共屬性合并到結果中。
$numeric_prefix:如果在基本數組中使用了數字索引,則使用此參數,它將僅在基本數組中元素的數字索引之前。
$arg_separator:它用于分隔參數,但可以通過指定此參數來覆蓋它。
$enc_type:其默認值為PHP_QUERY_RFC1738。
返回值:它返回URL編碼的字符串。
以下示例程序旨在說明PHP中的http_build_query()函數:
程序1:
<?php
$info = array(
'sudo' => 'placement',
'CPP' => 'course',
'FORK' => 'C',
);
echo http_build_query($info) . "#";
echo http_build_query($info, '', '&');
?>
輸出:
sudo=placement&CPP=course&FORK=C#sudo=placement&CPP=course&FORK=C
程序2:
<?php
$info = array('geeks', 'gfg' => 'sudo', 'placement' => 'hypertext processor');
echo http_build_query($info) . "$";
echo http_build_query($info, 'myvar_');
?>
輸出:
0=geeks&gfg=sudo&placement=hypertext+processor$myvar_0=geeks&gfg=sudo&placement=hypertext+processor
以上就是“php中怎么使用get方式傳數組”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。