Есть следующий XML-файл с галереей в нем
Мне нужно отобразить теги (скрыто в поле-2)
Поэтому я создал следующий код PHP
<?php $galleries = eg_return_gallery();
foreach ($galleries['projects']['items'] as $image)
{
echo $image['field-2']
}
?>
Как я могу отфильтровать дубликаты тегов, чтобы отображались только уникальные теги?
eg_return_gallery — как следует из названия, возвращает массив php (см. пример ниже)
array(3) {
["name"]=>
string(7) "galeria"["title"]=>
string(4) "Test"["items"]=>
array(1) {
[0]=>
array(10) {
["filename"]=>
string(27) "uploads/galeria-foty/01.jpg"["width"]=>
int(1050)
["height"]=>
int(740)
["thumb-0"]=>
array(3) {
["filename"]=>
string(52) "ExtraGallery/thumbs/galeria-foty/01-fill-200-300.jpg"["width"]=>
int(200)
["height"]=>
int(300)
}
["thumb-1"]=>
array(3) {
["filename"]=>
string(0) "ExtraGallery/thumbs/galeria-foty/01-10-0-200-300-200-300.jpg"["width"]=>
int(100)
["height"]=>
int(150)
}
["field-0"]=>
string(10) "Test text"["field-1"]=>
string(4) "text"["field-2"]=>
bool(true)
["field-3"]=>
string(0) ""["field-4"]=>
string(0) ""}
}
}
Вы можете сохранить каждый тег в новом массиве, а затем удалить дубликаты из этого массива:
<?php
$galleries = eg_return_gallery();
$tags = array();
foreach ($galleries['projects']['items'] as $image) {
$tags[] = $image['field-2'];
}
$tags = array_unique($tags);
print_r($tags);
?>
Я предлагаю вам посмотреть источник eg_return_gallery и узнать, как он работает, но я рекомендую вам использовать одну из этих библиотек http://php.net/manual/en/refs.xml.php, специально SimpleXML.
Но я думаю, что у вас есть проблемы со структурой вашего XML — поэтому я предлагаю вам прочитать спецификации XML http://www.w3.org/TR/2000/REC-xml-20001006.