我想动态创建一个包含对象列表的短数组。这是针对Guzzle客户端的POST请求。这就是为什么我需要一个短阵列。
Guzzle帖子请求的示例:
$res = $this->client->request($methode, $request_url, [
'form_params' => [
'param' => 'value'
]
]);
问题案例:
我有一个List: Params 对象: Param 。 Param有三个属性 id , name , link_id 。
假设List有三个Object。
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 :(得分:1)
如果您只想显示短数组语法,此解决方案可能会帮助您解决问题。
答案 1 :(得分:0)
我不太确定你为什么要求它是一个“短阵”,但这是一个解决方案......
我认为这是一个网络表单,是吗?
因此,我们假设您以可用的方式命名表单,例如:
<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);