2013-04-29 44 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嵌套數組沒有問題。