Сортировка лексикографически
Подскажите пожалуйста, как сделать аналог sort($array, SORT_STRING ), не использую эту встроенную функцию?
Я уже задавал похожий вопрос, но тогда, решил, что смогу всё сделать, однако в итоге сортируется не всегда правильно, я написал следующее
for($i=1;$i<=$_POST["quantity"];$i++){
$array[$i]=$i;
};
for ($j = 0; $j < count($array) + 1; $j++){
for ($i = 0; $i < count($array) - $j - 1; $i++){
if (strcmp($array[$i],$array[$i + 1]) == 1){
$tmp_var = $array[$i + 1];
$array[$i + 1] = $array[$i];
$array[$i] = $tmp_var;
};
};
};
думал это будет одно и тоже что и sort, но ... не работает и всё тут.. подскажите, что не так? при вводе массива с 1 до 11 выдаёт не
1 10 11 2 3 4 5 6 7 8 9, а 1 10 2 3 4 5 6 7 8 9 11
Ответы (1 шт):
Автор решения: Максим Степанов
→ Ссылка
При построении массива вы начинаете с ключа 1:
for($i=1; ...
А при сортировке с 0.
for ($j = 0; $j < count($array) + 1; $j++){
for ($i = 0; $i < count($array) - $j - 1; $i++){
Укажите $i=0 здесь: for($i=0;$i<=$_POST["quantity"];$i++){