2017-05-26 163 views
0

我想動態地創建一個包含對象列表的短陣列。這是針對Guzzle客戶端的POST請求。這就是爲什麼我需要一個短陣列。一個狂飲POST請求的PHP從列表中創建一個短陣列

例如:

$res = $this->client->request($methode, $request_url, [ 
      'form_params' => [ 
       'param' => 'value' 
      ] 
     ]); 

問題情況:

我有一個列表:PARAMS對象帕拉姆。 Param有三個屬性id名稱link_id

假設列表有三個對象。

param(1, email, 1) 
param(2, username, 1) 
param(3, password, 1) 

我想動態地從列表中創建一個數組與short array syntax

例(僞):

for each params as param 

[ 
    'form_params' => [ 
    param->name => 'value' 
    ] 
] 

這段代碼的結果會是這樣

[ 
    'form_params' => [ 
    'email' => 'value', 
    'username' => 'value', 
    'password' => 'value' 
    ] 
] 

代碼示例:

$params = array(
    "param" => array (
     "id" => "1", 
     "name" => "username", 
     "link_id" => "1", 
    ) 
); 

$value = ''; 
$shortarray = ''; 
foreach($params as $key => $param){ 
    $shortarray .= $param->name . '=>' . $value . ','; 
} 

$postParams = ['form_params' => [ . $shortarray . ]]; 

我真的可以使用一些幫助。先謝謝你。

+0

你能清楚地分享你的意見嗎? –

+0

這是否使它更清楚?你能否給我反饋我在這個例子中編寫的代碼。 – melkawakibi

+0

我正在談論你正在得到的輸入數組。 –

回答

0

我不明白爲什麼你需要它是一個「短陣」,但這裏有一個解決方案...

我想這是一個Web表單,是嗎?

因此,讓我們假設你的名字你的形式的方式,是可用的,如:

<form method="POST" action="yourform.html"> 
Line 1 <input name="email1"> | <input name="user1"> | <input name="password1"> 
<br/>-------<br/> 
Line 2 <input name="email2"> | <input name="user2"> | <input name="password2"> 
<br/>-------<br/> 
Line 3 <input name="email3"> | <input name="user3"> | <input name="password3"> 
</form> 

則...

for($i = 1; $i <= 3; $i++ { 
    $postparms[] = ['email' => $_POST['email'.$i], 'user' => $_POST['user'.$i], 'password' => $_POST['password'.$i] ]; 
} 

print_r($postparms); 
+0

感謝您的回覆,我正在用GuzzleClient構建一個POST請求的短陣列。這不是我要找的。對不起,我會添加更多的上下文。 - – melkawakibi