Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сортировка массива с помощью asort()...
 
 автор: coloboc66   (05.09.2014 в 10:49)   письмо автору
 
 

Мне нужно сделать сортировку по алфавиту, но проблема в том, что эта функция сначала записывает все слова с большой буквы, а потом - с малой. То есть:
$arr=("аа", " Дг", "Аб");
asort($arr);
foreach ($arr as $val) echo "<br/>$val";

Я получаю:

Аб
Дг
аа

вместо:

аа
Аб
Дг

Как этого избежать? Может, эта функция имеет спец.флаги?
Спасибо.
Т.е. мне нужно, чтобы при сортировке просто игнорировались заглавные (большие) буквы...

  Ответить  
 
 автор: KPETuH   (05.09.2014 в 12:13)   письмо автору
 
   для: coloboc66   (05.09.2014 в 10:49)
 

возможно вам подойдет
natcasesort()

  Ответить  
 
 автор: coloboc66   (05.09.2014 в 12:32)   письмо автору
 
   для: KPETuH   (05.09.2014 в 12:13)
 

Вроде подходит... Спасибо.

  Ответить  
 
 автор: coloboc66   (08.09.2014 в 16:29)   письмо автору
 
   для: coloboc66   (05.09.2014 в 12:32)
 

Проблема с заглавными буквами решилась, но нашлась новая проблема:
буквы с надстрочными знаками (например, знаки ударения, типа &#233;) функция отсортировывает в конец списка. А по идее &#233; должна идти после е.
Это рещается библиотечными функциями, или нужно придумывать что-то своё?

  Ответить  
 
 автор: Enter   (08.09.2014 в 16:43)   письмо автору
 
   для: coloboc66   (08.09.2014 в 16:29)
 

Без нужной кодировки, ютф8, не обойтись.

измени локаль на русскую и попробуй так: usort($arr, 'strcoll');

  Ответить  
 
 автор: coloboc66   (12.09.2014 в 12:58)   письмо автору
 
   для: Enter   (08.09.2014 в 16:43)
 

ютф8 я использую.
А локаль нужно на сервере менять? С помощью администратора хостинга?

  Ответить  
 
 автор: Enter   (12.09.2014 в 17:35)   письмо автору
 
   для: coloboc66   (12.09.2014 в 12:58)
 

setlocale(LC_ALL, "rus_RUS");

  Ответить  
 
 автор: coloboc66   (18.09.2014 в 12:20)   письмо автору
 
   для: Enter   (12.09.2014 в 17:35)
 

В каком файле эту инструкцию нужно вставить7

  Ответить  
 
 автор: Enter   (18.09.2014 в 13:12)   письмо автору
 
   для: coloboc66   (18.09.2014 в 12:20)
 

откуда я знаю, какие у вас там файлы. скорее всего в необходимом скрипте.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования