PHPのhttp_build_query()について

またハマったので、忘れないようにメモ

http://hogehoge.com/proc.php?data=AAA&data=BBB&data=CCC

こういう、リクエストがあったとします。

PHPはデータを取得する時に、配列で取得できます。

$params = $_GET['data'];
// $params = array('data' => array("AAA","BBB","CCC"));

そのままどこかへ送信するとして、http_build_query()を使って送信できる状態にします。

$query = http_build_query($params);
// $query = "data[0]=AAA&data[1]=BBB&data[2]=CCC";

さぁ、ここで、問題です。
送る先がPHPなら問題ないですが、Javaとかだと上で作られたクエリで意図した受信してくれるでしょうか?

正解は、
>> 残念、受け取ってくれません。

[0] のところが邪魔なんですねー。

正規表現で取り除くか、http_build_query()を模倣した関数を自作してつけないようにするか。
どちらかだと思います。