2013-04-29 45 views
0
$array = array('username' => 'mainytype','password' => 'abc1234','phone' =>  '7023451287'); 
$count = 0; 

foreach($array as $k => $v){ 
    $count++; 
    $new_data['info'.$count] = array("input[$k]=".$v); 
} 


print_r($new_data); 

$ty = http_build_query($new_data); 
print_r($ty); 

?> 

// print_r($new_data): 
Array ([info1] => Array ([0] => input[username]=mainytype) [info2] => Array ([0]  => input[password]=abc1234) [info3] => Array ([0] => input[phone]=7023452134)) 

//print_r($ty); 
info1%5B0%5D=input%5Busername%5D%3Dmainytype&info2%5B0%5D=input%5Bpassword %5D%3Dabc1234&info3%5B0%5D=input%5Bphone%5D%3D7023452134 

我想这foreach构建3个分离阵列。我理解的http_build_query()的结果,但我想它看起来像这样:PHP - 插入数组成http_build_query()

input%5Busername%5D=mainytype&input%5Bpassword%5D=abc1234&input%5Bphone%5D=7023451287 

回答

2

试试这个

<?php 
$array = array('username' => 'mainytype','password' => 'abc1234','phone' =>  '7023451287'); 

foreach($array as $k => $v){ 
    $new_data["input[$k]"] = $v; 
} 


print_r($new_data); 

$ty = http_build_query($new_data); 
echo($ty); 

?> 
1

这应该给你你想要的结果:

$array = array(
    'username' => 'mainytype', 
    'password' => 'abc1234', 
    'phone' => '7023451287' 
); 

$new_data = array('input' => $array); 

print_r($new_data); 

$ty = http_build_query($new_data); 
echo($ty); 

http_build_query嵌套数组没有问题。