PHP: как сортировать символы в строке?

У меня есть набор строк, содержащих символы в PHP-скрипте, мне нужно отсортировать эти символы в каждой строке.

Например:

"bac" -> "abc" "abc" -> "abc" "" -> "" "poeh" -> "ehop" 

У этих персонажей нет акцентов и все в нижнем регистре. Как я могу выполнить это в PHP?

  • Удалите первые 4 символа строки с помощью PHP
  • Удалить неанглийские символы PHP
  • Преобразование специальных символов (другого языка) на английский в PHP
  • PHP-количество вхождений символов строки в другой строке
  • 4 Solutions collect form web for “PHP: как сортировать символы в строке?”

    Я бы сделал его массивом и использовал функцию сортировки:

     $string = 'bac'; $stringParts = str_split($string); sort($stringParts); echo implode('', $stringParts); // abc 

    При использовании сортировки он должен быть строчным. У меня были строки с верхним регистром, вызывающие много проблем на моем чрезвычайно строгом тяжелом сайте с asort () и sort (), не зная об этом;). Я использую следующую функцию для быстрого сценария. Обратите внимание на «strtolower» для функции allChars. Затем вы можете манипулировать тем, что вам нужно, в нижнем регистре. Или, другое строковое упорядочение, которое обрабатывает верхний регистр и нижний регистр, является natcasesort () . Natcasesort, который обрабатывает надлежащий (естественный) порядок – так, как мы будем заказывать вещи на бумаге. Вы можете предоставить массив и использовать foreach для разделения каждого слова. Или, используйте это база для создания функции, которая обрабатывает массивы. Вы можете использовать implode ('', $ letters) вместо инструкции foreach, но эта функция позволяет вам изменять буквы, если вам нужно – просто сделать это внутри foreach. Также добавлены функции implode в том случае, если кто-то предпочитает их.

    Только нижний регистр

     function allChars($w){ $letters = str_split(strtolower($w)); sort($letters); $ret = ""; foreach($letters as $letter){ $ret .= $letter; } return $ret; } 

    Только нижний регистр с Implode

     function implodeAllChars($w){ $letters = str_split(strtolower($w)); sort($letters); return implode('',$letters); } 

    Естественная функция заказа

     function allCharsNat($w){ $letters = str_split($w); natcasesort($letters); $ret = ""; foreach($letters as $letter){ $ret .= $letter; } return $ret; } 

    Естественный заказ с Implode

     function allCharsNatImplode($w){ $letters = str_split($w); natcasesort($letters); return implode('',$letters); } 

    Это быстро и просто.

     function sort_alphabet($str) { $array = array(); for($i = 0; $i < strlen($str); $i++) { $array[] = $str{$i}; } // alternatively $array = str_split($str); // forgot about this sort($array); return implode('', $array); } 

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

     $in = "this is a test"; $chars = str_split($in); sort($chars); $out = implode($chars); 
    PHP is the Best Programming Language in the world.