gpt4 book ai didi

php - 从 JSON 数组中获取值是否有比 foreach 更快的方法?

转载 作者:可可西里 更新时间:2023-10-31 22:08:50 25 4
gpt4 key购买 nike

我有一个像这样的 JSON 数组:

[
{"location":"1","distance":"25.75206"},
{"location":"2","distance":"21.49343"},
{"location":"3","distance":"24.13432"}
]

现在我正在对每个 $location 执行 foreach 以获取相应的数据。

$locations = json_decode($locations, true);

foreach ($locations as $key => $value) {
if ($value['location'] == $location) {
$distance = $value['distance'];
}
}

问题是,数组可能非常大,有几千个项目,所以执行 foreach 会占用大量资源并且会减慢速度。

是否有任何更“直接”且资源密集度较低的方法来获取每个相应的值?

最佳答案

foreach 非常占用资源并且会减慢速度,因为它复制输入数组并使用此副本。如果你想避免这种行为,你可以使用指针访问。例如,您可以使用 reset , nextcurrent使用指针的构造

$value = reset($locations);
while ($element !== false) {
if ($value['location'] == $location) {
$distance = $value['distance'];
}
next($locations);
$value = current($locations);
}

当然,您可以在foreach 中使用指针。例如:

foreach ($locations as $key => &$value) {
if ($value['location'] == $location) {
$distance = $value['distance'];
}
}

关于php - 从 JSON 数组中获取值是否有比 foreach 更快的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53960716/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com