这里我想为查询字符串创建一个数组,如下所示:
item[]['item_id']=I00001&item[]['rate']=10.52&item[]['qty']=2&
item[]['item_id']=I52124&item[]['rate']=15.00&item[]['qty']=1&
item[]['item_id']=I62124&item[]['rate']=8.20&item[]['qty']=5
我想动态生成它。
for($i = 0 ; $i< count($allitems) ;$i++){
$itemid = explode('~',$allitems[$i]);
$arrdet[]=["'item_id'"=>$itemid[0],"'rate'"=>$itemid[1],"'qty'" =>$itemid[2]];
$item['item'] = array_merge($arrdet);
//$item['item'][]=["'item_id'"=>$itemid[0],"'rate'"=>$itemid[1],"'qty'" =>$itemid[2]];
}
echo http_build_query($item);
但是我的结果
item[0]['item_id']=I00001&item[0]['rate']=10.52&item[0]['qty']=2&
item[1]['item_id']=I52124&item[1]['rate']=15.00&item[1]['qty']=1&
item[2]['item_id']=I62124&item[2]['rate']=8.20&item[2]['qty']=5
怎么可能? 提前致谢
答案 0 :(得分:1)
我做了很多变通办法。但是,它确实应该有效。
$countAllitems = count($allitems);
$arr = array();
$items = array();
$query = array();
for($i = 0 ; $i< $countAllItems; $i++){
$itemid = explode('~',$allitems[$i]);
$arr['item_id'] = $itemid[0];
$arr['rate'] = $itemid[1];
$arr['qty'] = $itemid[2];
//Assign the array to another array with key 'item[]'
$items['item[]'] = $arr;
//Build the array to http query and assign to another array
$query[] = http_build_query($items);
}
//Implode the stored http queries
echo implode('&', $query);
答案 1 :(得分:0)
数组内部为零索引。
$array = [1, 2, 3];
是内部
$array = [
0 => 1,
1 => 2,
2 => 3
]
http_build_query
将始终输出数组的键,即使您没有明确指定它们。