Преобразование массива

Tourmentor

Новичок
Преобразование массива

Здравствуйте, участники форума!
Прошу помоч мне, начинающему изучать PHP, следующую задачу:
есть массив созданый из XML файла -
PHP:
Array
(
    [0] => SimpleXMLElement Object
        (
            [0] => Денис
        )

    [1] => SimpleXMLElement Object
        (
            [0] => Катя
        )

    [2] => SimpleXMLElement Object
        (
            [0] => Миша
        )

    [3] => SimpleXMLElement Object
        (
            [0] => Оля
        )

    [4] => SimpleXMLElement Object
        (
            [0] => Алена
Как мне преобразовать его в обычный массив? Типа -
PHP:
Array
(
    [0] => Денис
    [1] => Катя
    [2] => Миша
    [3] => Оля
    [4] => Алена
)
Это преобразование мне нужно для того, чтоб произвести сортировку по алфавиту функтией типа sort() , ведь многомерные массивы ею не отсортируешь((
Если что-то лучше предложите - будет здорово!

Заранее спасибо...
 

Tourmentor

Новичок
baev, мне известно о существовании данной функции, но когда пишу:
PHP:
$elm = array_multisort($elm, SORT_DESC, SORT_STRING);
то вместо массива отбражается символ "1".
Как быть?
 

baev

‹°°¬•
Команда форума
Tourmentor, да, массив всё-равно преобразовывать придётся.
http://tinyurl.com/y9lhq5z

Но определение функции Вы всё же посмотрите.
 

soines

Новичок
PHP:
$inputArray = array( ); // тут начальный массив
$arrayToSort = array( ); 
foreach( $inputArray as $value ) {
    $arrayToSort[] = (string) $value;
}
и дальше сортируй как тебе будет удобно
 

Tourmentor

Новичок
Спасибо всем! Массив преобразовали. Особенно soines , респект за подробный ответ.
Теперь наткнулся на любопытную вещь - массив не сортируется обычными функциями типа asort() , ведь эллементы массива разного регистра и с пробелами встречаются.
Точнее сортируется, но по Ascii таблице, а как в алфавитном привычном порядке, где идут снчала цифры, латиница, потом кирилица?
 

Beavis

Banned
Tourmentor
в ascii таблице цифры, латиница и кириллица тоже в привычном порядке идут
 

Tourmentor

Новичок
Beavis, взгляните, что выдает мне asort():

PHP:
    [4] => Arhangel1988
    [7] => Faustfeat
    [1] => Flash2006
    [6] => Michgun Z
    [10] => SkromniyElf
    [3] => klana FANTASY
    [0] => ЛИРА
    [5] => Леди Сказка
    [9] => СуперДрон
    [8] => Удар Веслом
    [2] => малекит
Это же не алфавитный((
 

dimagolov

Новичок
Tourmentor, это еще почему? еще как алфавитный. только перебирать его нужно через foreach, потому что как и хотел, индексы не менялись, фишка ф-ии asort
 

Tourmentor

Новичок
Вот как имхо выглядит алфавитный порядок (загнал в Ворд и отсортировал):

Arhangel1988
Faustfeat
Flash2006
klana FANTASY
Michgun Z
SkromniyElf
Леди Сказка
ЛИРА
малекит
СуперДрон
Удар Веслом
 

Вурдалак

Продвинутый новичок
Наверное, там где-то есть пробелы перед словами? Так убери их (ltrim, array_map).
 

Tourmentor

Новичок
Пробелов нету точно перед или после. Есть между словами внутри эллементов.
 

Tourmentor

Новичок
Поможите написать функцию usort() -ом? Совсем не разбирусь как он работает. Мануал читал.

ПыСы: кроме usort() ничего более короткого не придумать?
 
Сверху