【发布时间】:2017-04-12 20:52:41
【问题描述】:
我有一个包含大约 3500 个数组项的数组,格式如下。我有两个变化的动态变量,我需要根据已经知道的 price_slot 和国家/地区搜索数组以找出行 price_value。
我目前有以下内容,但这需要的时间太长。无论如何我可以加快访问速度吗?
PHP 函数
$country = US;
$priceSlot = 3;
$priceValue = getPriceValue($priceSlot, $country);
function getPriceValue($priceSlot, $country) {
// Search in array for price
foreach ($array as $arrayItem) {
if ($arrayItem['price_slot'] == $priceSlot && $arrayItem['country'] == $country) {
return $arrayItem['price_value'];
}
}
return null;
}
数组片段
Array
(
[0] => Array
(
[price_slot] => 1
[base_price] => Get in Touch
[country] => US
[price_multiplier] =>
[price_value] => Get in Touch
)
[1] => Array
(
[price_slot] => 2
[base_price] => 9000
[country] => US
[price_multiplier] => 1.3
[price_value] => 11700
)
[2] => Array
(
[price_slot] => 3
[base_price] => 12000
[country] => US
[price_multiplier] => 1.3
[price_value] => 15600
)
[3] => Array
(
[price_slot] => 4
[base_price] => 15000
[country] => US
[price_multiplier] => 1.3
[price_value] => 19500
)
[4] => Array
(
[price_slot] => 5
[base_price] => 4000
[country] => US
[price_multiplier] => 1.3
[price_value] => 5200
)
[5] => Array
(
[price_slot] => 6
[base_price] => 1600
[country] => US
[price_multiplier] => 1.3
[price_value] => 2080
)
有没有更快的方法来解决这个问题?
谢谢!
【问题讨论】:
-
如何填充数组?如果您总是检查
price_slot和country,则可以在构建数组时使用该组合作为数组索引,而不是使用数字索引。然后你可以简单地使用isset()来检查它是否存在,并返回它的price_value。 -
看起来应该在数据库中
-
我通过 csv @rickdenhaan 填充数组,所以很遗憾无法动态检查!
-
你每次都动态填充数组吗?这很可能是它很慢的原因
-
@EmilioGort,不,不是。