Правильный способ сортировки списка массивов - PullRequest
0 голосов
/ 06 февраля 2020

Привет, ребята, у меня проблема с логами c при сортировке списка размеров, надеюсь, вы поможете мне в этом. Вот мой подход

В моем файле шаблона:

<div class="collapse show" id="filters-<?= $filter['header'] ?>" aria-expanded="true">
    <?php foreach ($subFilters as $subFilter): ?>
        <?php if (!empty($subFilter['header'])): ?>
            <div class="sub-heading">
                <h3><strong><?= $subFilter['header'] ?></strong></h3>
            </div>
        <?php endif ?>
    // My Sorting approach
    <?php
        if ($filter['header'] == 'Size') {
            $temp = [];
            $sorted = Configure::read('Products.Sizes.size');

            foreach ($sorted as $key => $value) {
               foreach ($subFilter['options'] as $k => $val) {
                  if ($subFilter['options'][$k]['data']['title'] === $value) {
                      $temp[$key] = $subFilter['options'][$k];
                 }
               }
           }
           $subFilter['options'] = $temp;
       }
    ?>
     <?php endforeach ?>
</div>

В моем приложении. php

return [
    'debug' => $debug,
    'DebugKit.forceEnable' => $debug,
    'Products' => [
        'giftCardCode' => '1135069',
        'Skus' => [
            'giftCardCode' => '1660620',
        ],
        'Sizes' => array(
            'size' => [
                '7-8', '8', '9-10', '10', '11-12', '12', '13-14',
                '32A', '32B', '32C', '32D', '34A', '34B', '34C', '34D', '34DD', '36A', '36B', '36C', '36D', '36DD', '38A', '38B', '38C', '38D', '38DD', '40A', '40B', '40C', '40D', '40DD', 
                '32', '34', '36', '38', '40', '42', '44', '46', 'XS', 'S', 'M', 'L', 'XL', 'XXL', '2XL', 'XXXL'
            ],
        )
    ]
];

Что я хочу сделать здесь, это отсортировать его на основе для порядка в списке, что я и сделал, но проблема в моем логе c заключается в том, что вы переопределите значения в $ temp [$ key], если 2 или более параметров фильтра имеют одинаковый заголовок. Потому что есть размеры, которые отличаются как для мужчин, так и для женщин.

Примечание: у меня есть размеры в моей базе данных, этот список размеров является лишь руководством, поэтому, если я хочу что-то изменить, мне просто нужно изменить свою конфигурацию файл.

...