Получение подмножества эффективно, когда его нельзя найти

У меня есть довольно большой массив, который я структурировал так: 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?

0

Решение

Пытаться 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)', ...],
...
];
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]