2015-04-24 2 views
-9

Так что я действительно новичок в PHP, и я пытаюсь изучить некоторые новые трюки, и я надеюсь, что вы, ребята, могли мне помочь.Как отсортировать текст текста в PHP

Я хотел бы использовать это тело текста, например: «Lorem Ipsum боль сидеть Амет consectetur adipiscing Элит quisque facilisis tincidunt finibus aliquam ID Tempor Элит ут в Массе Quis НИСИ dapibus Tempus класс aptent taciti sociosqu объявление litora torquent в conubia nostra per inceptos himenaeos in ac metus eget. "

и сначала создайте его, как он есть здесь, но затем также сортируйте слова alpabeticaly и покажите результаты под исходным текстом. Есть ли способ сделать это простым способом?

Спасибо!

+2

Возможно, вы уже пробовали что-нибудь еще? – Naruto

+0

Мне удалось сделать это вручную с помощью массивов, но на самом деле это не то, что я ищу. Мне нужно было бы взять строку, нарезать ее словами и затем отсортировать. Но, как я уже сказал, я не мастер PHP. –

ответ

1

Вы можете взорвать строку в массив пробелами, отсортировать ее и вставить ее обратно в одну строку.

Нечто подобное:

$string = "Lorem ipsum dolor sit amet consectetur adipiscing elit quisque facilisis tincidunt finibus aliquam id tempor elit ut in massa quis nisi dapibus tempus class aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeos in ac metus eget."; 
print $string; 
// Explode string by spaces 
$words = explode(' ', $string); 
// Sort the array of words 
asort($words); 
// Join the elements of the array with spaces 
$string = implode(' ', $words); 
print $string; 

Надеется, что это помогает! Для получения более подробной информации о сортировке массива проверить manual

EDIT:

Из комментария Я видел, как вы не хотите, чтобы сделать это «вручную». Вы можете превратить его в такую ​​функцию:

$string = 'Beta Alpha Gamma'; 

function sortWordsInString($string, $glue = ' ') { 
    $words = explode($glue, $string); 
    asort($words); 

    return implode($glue, $words); 
} 

$string = sortWordsInString($string); 
+1

Это именно то, что я искал! Спасибо! –

1

Как это:

<?php 

$text = "Lorem ipsum dolor sit amet consectetur adipiscing elit quisque facilisis tincidunt finibus aliquam id tempor elit ut in massa quis nisi dapibus tempus class aptent taciti sociosqu ad litora torquent per conubia nostra per inceptos himenaeos in ac metus eget."; 
echo $text."\n\n"; 
$pieces = explode(' ', $text); 
natcasesort($pieces); 
echo implode(' ', $pieces); 

Вы в основном должны explode весь текст на слова. И оттуда вы получите natcasesort возвращенный массив в алфавитном порядке. И, наконец, вы implode массив.

+0

Отлично! Это работало так, как мне было нужно. Благодаря! –

+0

@ EmilEricsson Я рад, что это сработало. Лучший способ поблагодарить кого-то - это принять ответ. Сделайте это, нажав зеленую галочку рядом с моим ответом. – karlingen

Смежные вопросы