Подмассив PHP-фильтра

Есть следующий XML-файл с галереей в нем

http://pastebin.com/GFykW0tc

Мне нужно отобразить теги (скрыто в поле-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) ""}
}
}

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);
?>
0

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

Я предлагаю вам посмотреть источник eg_return_gallery и узнать, как он работает, но я рекомендую вам использовать одну из этих библиотек http://php.net/manual/en/refs.xml.php, специально SimpleXML.

Но я думаю, что у вас есть проблемы со структурой вашего XML — поэтому я предлагаю вам прочитать спецификации XML http://www.w3.org/TR/2000/REC-xml-20001006.

0

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