Помогите с сортировкой строки

val06

Гуру форума
Регистрация
11 Авг 2006
Сообщения
259
Реакции
89
добрый день. подскажите как пересортировать строку. все что нашел в сети по сортировке не получается.

есть строка
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=
нужно пересортировать что бы получилась
MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=

еще для примера
есть
NWYwZjJ-hZjU1Zm-NlNzFjN-zMyN2Zl-ZmEwMzg-xOWFjZj-Q=
нужно
hZjU1Zm-xOWFjZj-NWYwZjJ-NlNzFjN-ZmEwMzg-zMyN2Zl-Q=

можно исходную строку представить как массив
Array ( [0] => MTJkZjA [1] => 1NThhMD [2] => AzZjFkY [3] => 2M1ZjA5 [4] => YTljMGZ [5] => hYmUyZW [6] => Y= )
или просто строку
MTJkZjA1NThhMDAzZjFkY2M1ZjA5YTljMGZhYmUyZWY=
если нужно для пересортировки.
 
добрый день. подскажите как пересортировать строку. все что нашел в сети по сортировке не получается.

есть строка
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=
нужно пересортировать что бы получилась
MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=

еще для примера
есть
NWYwZjJ-hZjU1Zm-NlNzFjN-zMyN2Zl-ZmEwMzg-xOWFjZj-Q=
нужно
hZjU1Zm-xOWFjZj-NWYwZjJ-NlNzFjN-ZmEwMzg-zMyN2Zl-Q=

можно исходную строку представить как массив
Array ( [0] => MTJkZjA [1] => 1NThhMD [2] => AzZjFkY [3] => 2M1ZjA5 [4] => YTljMGZ [5] => hYmUyZW [6] => Y= )
или просто строку
MTJkZjA1NThhMDAzZjFkY2M1ZjA5YTljMGZhYmUyZWY=
если нужно для пересортировки.

Не пойму условия задачи
Как понимаю строку можно разбить на 6 частей:
1-2-3-4-5-6
И после сортировки должно получиться:
2-6-1-3-5-4

Верно?
 
не на 6 а на 7 частей
после сортировки должно получится
если брать нумерацию массива то должно получится
0-3-4-2-5-1-6 для первого варианта
1-5-0-2-4-3-6 для второго варианта
в общем пока не могу никак уловить логики сортировки (
 
<?php
$text = "MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=";
$array = explode("-", $text);
print_r($array);
?>
Так?)) я не понял )))
 
Последнее редактирование:
$text = "MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=";
$array = explode("-", $text);
echo $array[1] . $array[5] . $array[0] . $array[2] . $array[4] . $array[3] . $array[6];

Вот так))) вылезло с готового кода :lol:
 
нет не в этом проблема. может неправильно поставил вопрос, так сказать не с того начал, начну с начало.
приведу конкретный пример, есть строка, 2LbGeAo-MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=
она преобразована в массив
Array ( [0] => 2LbGeAo [1] => MTJkZjA [2] => 2M1ZjA5 [3] => YTljMGZ [4] => AzZjFkY [5] => hYmUyZW [6] => 1NThhMD [7] => Y= )
после чего выделен первый элемент массива в переменную $a = 2LbGeAo; и так же разложен на массив, получаем 2 массива
$a = Array ( [0] => 2 [1] => L [2] => b [3] => G [4] => e [5] => A [6] => o )
$b = Array ( [0] => MTJkZjA [1] => 2M1ZjA5 [2] => YTljMGZ [3] => AzZjFkY [4] => hYmUyZW [5] => 1NThhMD [6] => Y= )
пересортировка
array_multisort($a, SORT_NATURAL, $b);
получаем пересортированные массивы
Array ( [0] => 2 [1] => A [2] => G [3] => L [4] => b [5] => e [6] => o )
Array ( [0] => MTJkZjA [1] => 1NThhMD [2] => AzZjFkY [3] => 2M1ZjA5 [4] => YTljMGZ [5] => hYmUyZW [6] => Y= )
преобразуем в строки и получаем строки
2AGLbeo
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=

а теперь вопрос.
нам известно только эти строки
2AGLbeo
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=
как их пересортировать что бы получились исходные ?
2LbGeAo
MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=
 
нет не в этом проблема. может неправильно поставил вопрос, так сказать не с того начал, начну с начало.
приведу конкретный пример, есть строка, 2LbGeAo-MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=
она преобразована в массив
Array ( [0] => 2LbGeAo [1] => MTJkZjA [2] => 2M1ZjA5 [3] => YTljMGZ [4] => AzZjFkY [5] => hYmUyZW [6] => 1NThhMD [7] => Y= )
после чего выделен первый элемент массива в переменную $a = 2LbGeAo; и так же разложен на массив, получаем 2 массива
$a = Array ( [0] => 2 [1] => L [2] => b [3] => G [4] => e [5] => A [6] => o )
$b = Array ( [0] => MTJkZjA [1] => 2M1ZjA5 [2] => YTljMGZ [3] => AzZjFkY [4] => hYmUyZW [5] => 1NThhMD [6] => Y= )
пересортировка
array_multisort($a, SORT_NATURAL, $b);
получаем пересортированные массивы
Array ( [0] => 2 [1] => A [2] => G [3] => L [4] => b [5] => e [6] => o )
Array ( [0] => MTJkZjA [1] => 1NThhMD [2] => AzZjFkY [3] => 2M1ZjA5 [4] => YTljMGZ [5] => hYmUyZW [6] => Y= )
преобразуем в строки и получаем строки
2AGLbeo
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=

а теперь вопрос.
нам известно только эти строки
2AGLbeo
MTJkZjA-1NThhMD-AzZjFkY-2M1ZjA5-YTljMGZ-hYmUyZW-Y=
как их пересортировать что бы получились исходные ?
2LbGeAo
MTJkZjA-2M1ZjA5-YTljMGZ-AzZjFkY-hYmUyZW-1NThhMD-Y=

То есть нам необходимо определить метод сортировки и сделать обратную сортировку данным методом?
 
То есть нам необходимо определить метод сортировки и сделать обратную сортировку данным методом?
метод сортировки известен
array_multisort($a, SORT_NATURAL, $b);
надо найти обратный метод
 
array_multisort($a, SORT_REGULAR, $b);
Может быть так? Это вернет массив к изначальной сортировке после
array_multisort($a, SORT_NATURAL, $b);
 
Назад
Сверху