У меня есть довольно большой массив, который я структурировал так: http://pastebin.com/EQjerbcE Я пытаюсь найти более эффективный способ вынуть подмножество / фрагмент этого массива. В настоящее время я делаю это:
$valToken = $attrSizes[$array->Size]; //14
$sizeNames = [];
foreach ($attrSizes AS $key => $value)
{
if ($valToken === $value)
{
$sizeNames[] = $key;
}
if ($valToken < $value) break;
}
На мой взгляд, цикл не должен быть ответом, так как он довольно неэффективен. Хотя я добавил пункт, чтобы сломать после $valToken
меньше чем $value
чтобы убедиться, что я НЕ запускаю полный цикл, если не нужен. Должен быть более умный, более эффективный способ сделать это, хотя со всеми методами массива, которые мы имеем в PHP?
Пытаться array_keys
:
$sizeNames = array_keys($attrSizes, $array->Size, true);
Кстати: я бы структурировал массив следующим образом:
$attrSizes = [
0 => ['*NONE', ],
1 => ['XS (101)', 'S (102)', 'M (103)', 'L (104)', 'XL (105)', 'XXL (106)', 'XXXL (107)', ],
2 => ['Small x 31 (110)', 'Small x 33 (111)', ...],
...
];
Других решений пока нет …