带字符串的遍历数组结构

时间:2014-09-04 21:13:57

标签: php

我可以存储预先制作的数组遍历吗?

我想存储几个API调用,以及如何从响应中获取相关信息。

例如:

$url = 'http://maps.googleapis.com/maps/api/elevation/json?locations='.$location->$latitude.','.$location->$longitude.'&sensor=true';

$response = json_decode(file_get_contents($url), true);

$result = $response['results'][0]['elevation'];

我可以将此部分保存为字符串,以便存储在我的数据库或变量中:

$elevation = "['results'][0]['elevation']";

然后以某种方式使用它来解析响应,即

$result = $response[$elevation];

1 个答案:

答案 0 :(得分:0)

答案是否定的,对不起!您需要按原样存储$response并稍后使用正确的格式$response['results'][0]['elevation']

进行调用

如果问题是关于如何将数组持久保存到数据库中,则可能需要使用serialize()

$db->insert(serialize($reponse));

然后当您从数据库中检索响应时,请使用unserialize:

$response=unserialize($db->fetchReponse());
$elevation=$response['results'][0]['elevation'];

修改

根据您在下方的评论,您似乎需要的是一个缓存。因此,在将请求发送到Web服务API之前,您的应用程序会检查缓存中是否已在本地提供数据。如上所示,您很可能希望序列化PHP数组,或者只是缓存原始响应,因为它是JSON格式(PHP序列化将创建非常相似的东西)。 您可以从查询参数:location等创建Cache密钥

如果您选择或在文件系统上,甚至在内存中,您的缓存对象都可以存储在数据库中。

查看ZF2缓存组件:

http://framework.zend.com/manual/2.0/en/modules/zend.cache.storage.adapter.html