Не понимаю, как работает фильтрация по left_margin.
Отрабатываю в командной строке скрипт.
Получаю вывод
Array( [0] => Array ( [ID] => 2090 [~ID] => 2090 [LEFT_MARGIN] => 6 [~LEFT_MARGIN] => 6 ) [1] => Array ( [ID] => 2019 [~ID] => 2019 [LEFT_MARGIN] => 9 [~LEFT_MARGIN] => 9 ) [2] => Array ( [ID] => 2092 [~ID] => 2092 [LEFT_MARGIN] => 10 [~LEFT_MARGIN] => 10 ) [3] => Array ( [ID] => 2093 [~ID] => 2093 [LEFT_MARGIN] => 12 [~LEFT_MARGIN] => 12 ) [4] => Array ( [ID] => 2020 [~ID] => 2020 [LEFT_MARGIN] => 15 [~LEFT_MARGIN] => 15 ) [5] => Array ( [ID] => 20286 [~ID] => 20286 [LEFT_MARGIN] => 16 [~LEFT_MARGIN] => 16 ) [6] => Array ( [ID] => 20284 [~ID] => 20284 [LEFT_MARGIN] => 18 [~LEFT_MARGIN] => 18 ) и т.д.
Аналогичный вывод если фильтровать по "<LEFT_MARGIN" => "6" или ">LEFT_MARGIN" => "6"
Заменяю фильтрацию по margin на "!LEFT_MARGIN" => "6"
Получаю
Вывод
[0] => Array ( [ID] => 201 [~ID] => 201 [LEFT_MARGIN] => 1 [~LEFT_MARGIN] => 1 ) [1] => Array ( [ID] => 207 [~ID] => 207 [LEFT_MARGIN] => 2 [~LEFT_MARGIN] => 2 ) [2] => Array ( [ID] => 2017 [~ID] => 2017 [LEFT_MARGIN] => 3 [~LEFT_MARGIN] => 3 ) [3] => Array ( [ID] => 2089 [~ID] => 2089 [LEFT_MARGIN] => 4 [~LEFT_MARGIN] => 4 )
Пытаюсь понять что-то интуитивно, но по логике фильтрация работает мягко говоря странно.
В чем проблема?
Отрабатываю в командной строке скрипт.
Код |
---|
CModule::IncludeModule('iblock'); $sect = CIBlockSection::GetByID('2090')->GetNext(); print_r($section); $sections = array(); $dbResult = CIBlockSection::GetList(array("LEFT_MARGIN" => "asc"), array("LEFT_MARGIN" => "6", "IBLOCK_ID" => $sect["IBLOCK_ID"], false, array("ID", "LEFT_MARGIN"), false); while ($next = $dbResult->GetNext()) { $sections[] = $next; } echo '<pre>'; print_r($sections); echo '</pre>'; |
Array( [0] => Array ( [ID] => 2090 [~ID] => 2090 [LEFT_MARGIN] => 6 [~LEFT_MARGIN] => 6 ) [1] => Array ( [ID] => 2019 [~ID] => 2019 [LEFT_MARGIN] => 9 [~LEFT_MARGIN] => 9 ) [2] => Array ( [ID] => 2092 [~ID] => 2092 [LEFT_MARGIN] => 10 [~LEFT_MARGIN] => 10 ) [3] => Array ( [ID] => 2093 [~ID] => 2093 [LEFT_MARGIN] => 12 [~LEFT_MARGIN] => 12 ) [4] => Array ( [ID] => 2020 [~ID] => 2020 [LEFT_MARGIN] => 15 [~LEFT_MARGIN] => 15 ) [5] => Array ( [ID] => 20286 [~ID] => 20286 [LEFT_MARGIN] => 16 [~LEFT_MARGIN] => 16 ) [6] => Array ( [ID] => 20284 [~ID] => 20284 [LEFT_MARGIN] => 18 [~LEFT_MARGIN] => 18 ) и т.д.
Аналогичный вывод если фильтровать по "<LEFT_MARGIN" => "6" или ">LEFT_MARGIN" => "6"
Заменяю фильтрацию по margin на "!LEFT_MARGIN" => "6"
Получаю
Вывод
[0] => Array ( [ID] => 201 [~ID] => 201 [LEFT_MARGIN] => 1 [~LEFT_MARGIN] => 1 ) [1] => Array ( [ID] => 207 [~ID] => 207 [LEFT_MARGIN] => 2 [~LEFT_MARGIN] => 2 ) [2] => Array ( [ID] => 2017 [~ID] => 2017 [LEFT_MARGIN] => 3 [~LEFT_MARGIN] => 3 ) [3] => Array ( [ID] => 2089 [~ID] => 2089 [LEFT_MARGIN] => 4 [~LEFT_MARGIN] => 4 )
Пытаюсь понять что-то интуитивно, но по логике фильтрация работает мягко говоря странно.
В чем проблема?