Получение первого элемента в объекте (PHP) - PullRequest
0 голосов
/ 12 января 2012

У меня есть объект, структурированный так:

Array 
( 
    [0] => SimpleXMLElement Object ( [0] => Europe ) 
    [1] => SimpleXMLElement Object ( [0] => South America ) 
    [3] => SimpleXMLElement Object ( [0] => North America ) 
    [4] => SimpleXMLElement Object ( [0] => Asia )
)

Я пытаюсь отсортировать объекты по алфавиту.Я пытался использовать sort () для массива в целом, но он не работает.Я предполагаю, что это было просто получение имени объекта, которое одинаково во всех случаях, и сортировка их вместо этого.Я пытаюсь получить доступ к тексту внутри каждого объекта, но, кажется, не могу этого сделать, не взяв с собой текст «SimpleXMLElement Object ()».Как мне получить доступ к этому тексту и, возможно, воссоздать новый массив только с текстовыми значениями?

РЕДАКТИРОВАТЬ: Я пробовал следующее:

$ region = sort ($ регионов);$ регионов = usort ($ регионов);

Спасибо!

1 Ответ

3 голосов
/ 12 января 2012

Вы можете использовать usort :

<?php
function pony_sorting($a, $b)
{
    if ((string)$a[0] == (string)$b[0) {
        return 0;
    }
    return ((string)$a[0] < (string)$b[0]) ? -1 : 1;
}

usort($a, "pony_sorting");

Это сохранит структуру данных вашего массива.Но если вас не волнуют ваши элементы SimpleXML, просто экспортируйте их в чистый и более эффективный массив памяти.

$clean = array();
foreach ($a as $simplexml)
{
  $clean[] = (string)$simplexml[0];
}

Обратите внимание на приведение (string), позволяющее получить фактическое значение simpleXmlElement.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...