【发布时间】:2017-09-09 23:31:45
【问题描述】:
我有一个存储变量位置的数据库。例如,我有一个潜在客户数组,所以我在数据库中有一个名为 ID 的字段,位置为$lead['@attributes']['Id']。这都是在数据库中设置的。
我遇到的问题是从我拥有的数组中检索值。
我目前尝试的是这样的:
foreach($t AS $lead) {
$newItem = [];
foreach ($this->crm->fields AS $field) {
$newItem[$field->name] = ${$field->location};
}
}
但这不起作用。它给了我一个错误说:
Undefined variable: $lead['@attributes']['Id']
但是,如果我使用echo $lead['@attributes']['Id']; die();,它会将 ID 放在页面上。我做错了什么?
TLDR;
我需要创建存储在数据库中的动态变量,以从数组中获取信息。
例子
这是我要从中提取的数组:
array(6) {
["@attributes"]=>
array(10) {
["Id"]=>
string(7) "1086984"
["LeadTitle"]=>
string(7) "1086984"
["CreateDate"]=>
string(19) "03/11/2015 02:00:00"
["ModifyDate"]=>
string(19) "04/13/2017 13:02:57"
["ActionCount"]=>
string(2) "13"
["LogCount"]=>
string(2) "13"
["ReminderCount"]=>
string(1) "1"
["ReadOnly"]=>
string(5) "false"
["Flagged"]=>
string(5) "false"
["LastDistributionDate"]=>
string(19) "01/01/0001 00:00:00"
}
}
我拥有的数据库中有以下内容:
ID | Name | Location
1 | ID | $lead['@attributes']['Id']
最后,我得到的数组应该如下所示:
array(10) {
["ID"]=>
string(7) "1086984"
}
编辑 1
我正在通过 cURL 从平台获取 XML 文件。我正在获取那个 XML 文件,通过simplexml_load_string() 运行它,然后运行json_encode() 和json_decode(),最后给了我一个数组。
然后我还有一个数据库,其中包含字段名称列表,以及我从 XML 文件创建的数组中的位置。然后我在字段数据库中循环,并以更好的解析方式将 XML 文件保存到数据库中。我每 5 分钟对更新的信息执行一次。我不是生成 XML 文件的人,我通常也不会以我必须的方式保存信息。我知道这可能不是最好的方法,但它仅供内部使用,我公司以外的任何人都无法访问我们正在制作的网站。
编辑 2/更新 1
我又撞上了一个路障。他们有一个名为“fields”的项目,其中包含一个字段数组。
问题是,一切都是他们的“属性”。例如,它们是地址、电子邮件、名字、姓氏等。我将如何循环获取正确的数据?有什么想法吗?
其他 3 个对象也存在此问题。动作和日志,大量的日志......
【问题讨论】:
-
这是一种可怕的数据存储方式,您应该更改为类似路径
lead.attributes.id或其他策略。唯一的办法就是按照自己的方式进行操作是eval("\$newItem[{$field->name}] = {$field->location};"); -
AbraCadaver 你有什么建议?这仅用于解析数据。我们使用的平台为我们提供了一个 XML 文件,我们对其进行解析。为了便于更新,我们希望使用 MySQL 数据库使其全部动态化,以从我们生成的 XML 数组中获取信息。我们解析它,然后将其保存到 MySQL 数据库中的一个表中。
-
Undefined variable: $lead['@attributes']['Id']表示,它将其视为字符串,而不是对象/数组。太好了...@AbraCadaver 的评估建议,去做吧 ;) -
问题,代码
eval("\$newItem[{$field->name}] = {$field->location};");给了我这个错误:Use of undefined constant ID - assumed 'ID' -
为什么不在
$field->location部分尝试eval()?那不行吗?
标签: php mysql arrays variables dynamic