我有一个向API提交值的数组。如果我手动添加值,它提交没有问题,但如果我在数组中添加一个变量值,它似乎将值视为数组。
这有效:
$post = array(
'email' => 'john@example.com',
'first_name' => 'John',
);
这不起作用:
$totals = "'first_name' => 'John', 'email' => 'john@example.com'",
$post = array(
$totals
);
API的错误响应是:
[0] => 'first_name' => 'John', 'email' => 'john@example.com',
是否有其他方法可以将我的值添加到API的数组中?
答案 0 :(得分:2)
为什么以下不起作用?
{"backend": {"file": {"path": "/vault/file"}}, "listener": { "tcp": { "address": "0.0.0.0:8200", "tls_disable": 1 } }, "default_lease_ttl": "168h", "max_lease_ttl": "720h", "disable_mlock": "true"}
通过在值周围放置双引号$totals = "'first_name' => 'John', 'email' => 'john@example.com'"
,您将为"
分配一个字符串并期望它创建一个数组。
有一些选项可以修复它。方案一
$totals
另一种选择:
$post['first_name'] = 'John';
$post['email'] = 'john@example.com';
另一种选择:
$post = array('first_name' => 'John', 'email' => 'john@example.com');
由于我不确定$totals = array('first_name' => 'John', 'email' => 'john@example.com');
$post = $totals;
值的来源,可能会有更多选项。
答案 1 :(得分:2)
你基本上是在尝试从String中创建一个直接不可能的数组
$totals = "'first_name' => 'John', 'email' => 'john@example.com'";
它创建一个带有值的字符串 '如first_name' => ' John','电子邮件' => ' john@example.com'
现在你的陈述
$post = array($totals);
基本上是将该字符串分配给零索引处的$ post数组。
答案 2 :(得分:1)
试试这个......
$totals = array();
$totals['first_name'] = 'John';
$totals['email'] = 'john@example.com';
$post = $totals;
print_r($post);
答案 3 :(得分:1)
第一个示例是一个包含两个键(email
和first_name
)的数组:
$post = array(
'email' => 'john@example.com',
'first_name' => 'John',
);
你的第二个例子与此相同:
$post = array(
0 => "'first_name' => 'John', 'email' => 'john@example.com'"
);
它只包含一个条目,位于键0
。它的值看起来像PHP代码(但它不是)。这绝对不是第一个例子。
显然你的问题是如何在PHP中处理数组。
了解PHP arrays。文档页面介绍了如何create arrays using array()
,access array elements using square brackets和create/modify array elements using square brackets。 PHP还提供了很多functions to handle arrays。
阅读完文档后,您将能够以多种方式构建和修改数组。例如:
$post = array();
$post['email'] = 'john@example.com';
$post['first_name'] = 'John';
答案 4 :(得分:1)
你需要用方括号包裹关键部分。这将起作用
$totals = "['first_name'] => 'John', ['email'] => 'john@example.com'";
$post = array($totals);
print_r($post);