У меня есть переменная:Сортировать содержимое переменной в числовом порядке
$data = "Article 4 Article 2 Article 10";
Мне нужно, чтобы этот вывод:
Article 2 Article 4 Article 10
Я пытался что-то вроде этого:
<?php
$data = "Article 4 Article 2 Article 10";
function sort_titles_article_numbers($a,$b) {
$akey = $a->$data;
if (preg_match('/^Article (\d+)\. /', $akey, $matches)) {
$akey = $matches[1];
}
$bkey = $b->$data;
if (preg_match('/^Article (\d+)\. /', $bkey, $matches)) {
$bkey = $matches[1];
}
if ($akey == $bkey) {
return 0;
}
return ($akey < $bkey) ? -1 : 1;
}
uasort($data,'sort_titles_article_numbers');
echo $data;
?>
Но что-то неправильно. Кажется, что uasort работает только для массивов, но как я могу сортировать его внутри переменной?
Почему вы не используете массив для хранения значений ? Использование одной строки для хранения нескольких строковых значений - это поиск проблем. – Christoffer
Поверните строку в массив, отсортируйте ее, а затем верните ее в виде строки. –
@ Крис да, вы правы, что сохранение в массиве - лучший способ, но у меня есть большая часть текстовых данных. и для меня интересно, есть ли другие способы. – kostya572