【发布时间】:2020-03-02 02:31:54
【问题描述】:
我使用 aws redis 缓存来获得更快的结果,而不是保存在数据库中。 用这个方法
$result = $client->listTagsForResource([
'ResourceName' => '<string>', // REQUIRED
]);
现在它以给定的格式给我结果。
Array
(
[0] => Array
(
[Key] => key1
[Value] => string1
)
[1] => Array
(
[Key] => status
[Value] => 1
)
)
我无法在亚马逊文档中找到可以给我直接结果的函数,所以我决定在 array 中搜索,但是在非常大的带有循环的数组中查找会花费我的时间。那么有没有办法在下面转换它
Array
(
[key1] => string1,
[status] => 1
)
所以我可以使用$array['key1']直接访问数组索引
【问题讨论】:
-
如果您只对结果集执行一次搜索,那么首先将其转换为关联数组不可能使其更快,因为您仍然需要支付遍历成本。也就是说,转换循环的成本永远不会低于一个搜索循环的成本。
-
如果你想用这种方式搜索数据,为什么不先转换一下再写入缓存。这意味着转换完成一次,读取速度更快。
-
@AlexHowansky 是的,你是对的 array_combine 将花费相同或更多的时间,那么对于大型数组来说,最好的方法应该是什么。
标签: php arrays redis amazon-elasticache aws-php-sdk