Добрый день
Мучаю каскадный селект (Страна - Город). Задача вывести только страны, но так что бы они не повторялись.
Изначально в опциях элемента есть шаблон "Только последний" в моем случае он выводит только города с указанным разделителем.
Я сделал в файле /media/zoo/applications/jbuniversal/elements/jbselectcascade/jbselectcascade.php по аналогии с этим шаблоном свой, что бы вывести только первые значения. В моем случае это "Города" - и это работает
if ('last' == $template) { $result = array(end($valueList)); } else if ('first' == $template) { $result = array(current($valueList)); }
Мне это необходимо что бы отобразить в разных блоках отдельно страны в которых есть представительства компании и в отдельной строке города. Когда я вывожу страны, то случаются повторы.
Т.е. вот так Россия, Украина, Россия, Россия
А должно быть так: Россия, Украина
Пример:
Я пробовал через
array_unique();
Вот так
if ('last' == $template) { $result = array(end($valueList)); } else if ('first' == $template) { $result = array(current($valueList)); $result = array_unique($result); }
Но это не дало результата. Пробовал еще всякие методы, но так как я php совсем плохо, больше методом тыка.
Смотрел вывод print_r для массива $result и оказалось что ключи для всех элементов массива равны [0]
Array ( [0] => Россия ) Array ( [0] => Украина ) Array ( [0] => Россия )
Думается что именно тут проблема с array_unique ибо как я понимаю ключи должны быть уникальными для каждого элемента массива.
Так как исчерпал свой запас "Тыка" прошу помочь тех кто может убрать дубли из массива. Прикрепил свой файл bselectcascade.php
Прикрепленные файлы
Сообщение отредактировал orchanin: 03 December 2017 - 20:23