Php 将数组的大数组转换为不带循环的关联数组

Php 将数组的大数组转换为不带循环的关联数组,php,arrays,redis,amazon-elasticache,aws-php-sdk,Php,Arrays,Redis,Amazon Elasticache,Aws Php Sdk,我使用aws redis缓存来更快地获得结果,而不是保存在db中。 用这种方法 $result = $client->listTagsForResource([ 'ResourceName' => '<string>', // REQUIRED ]); 我无法在amazon文档中找到一个可以直接给出结果的函数,因此我决定在数组中搜索,但在带有循环的非常大的数组中搜索会花费我大量的时间。那么,有没有一种方法可以在下面的 Array ( [key1] =&g

我使用aws redis缓存来更快地获得结果,而不是保存在db中。 用这种方法

$result = $client->listTagsForResource([
    'ResourceName' => '<string>', // REQUIRED
]);
我无法在amazon文档中找到一个可以直接给出结果的函数,因此我决定在数组中搜索,但在带有循环的非常大的数组中搜索会花费我大量的时间。那么,有没有一种方法可以在下面的

Array
(
    [key1] =>  string1,
    [status] =>  1
)

因此,我可以使用
$array['key1']

直接访问数组索引。您可以尝试以下方法来创建新数组:

$newArray = array_combine(
                array_column($array, 'Key'), 
                array_column($array, 'Value')
);

echo $newArray['status'];

如果只对结果集执行一次搜索,那么首先将其转换为关联数组不可能加快搜索速度,因为您仍然需要支付遍历的成本。也就是说,转换循环的成本永远不会低于一个搜索循环的成本。如果您希望能够以这种方式搜索数据,为什么不在将数据写入缓存之前进行转换呢。这意味着转换只进行一次,读取速度更快。@AlexHowansky是的,您是对的,数组\u组合将花费相同或更多的时间,那么对于大型数组,什么样的方法应该是最好的方法呢。
$newArray = array_combine(
                array_column($array, 'Key'), 
                array_column($array, 'Value')
);

echo $newArray['status'];