Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.03.2019, 18:56
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Регулярные выражение
Здравствуйте! Подскажите, пожалуйста, как решить задачу. Есть текстовый файл с содержанием:

Австралия 123
Австрия 237
Азербайджан 57
Аландские острова 5
Албания 23
Алжир 4366


Надо вывести страны с числами в порядке убывания. Делаю так:
$file = file('text.txt');
$digit=preg_replace("/[^0-9]/","",$file);
rsort($digit);
foreach($digit as $num) {
	$number=key(preg_grep('|'.$num.'|i',$file));
	echo $file[$number]."<br />";
}


Выводит:
Алжир 4366
Австрия 237 
Австралия 123 
Азербайджан 57 
Австралия 123 
Азербайджан 57

Что не так? И как сделать правильно?
Ответить с цитированием
  #2 (permalink)  
Старый 18.03.2019, 19:02
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Получите массив вложенных массивов строка, число, затем array_multisort().
Ответить с цитированием
  #3 (permalink)  
Старый 18.03.2019, 19:31
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Не соображу как.
Ответить с цитированием
  #4 (permalink)  
Старый 18.03.2019, 19:38
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$a = array_map(function($v) {
    return preg_split('/\s(?=\d)/', $v);
}, file('text.txt', FILE_SKIP_EMPTY_LINES));

$n = array_column($a, 1); //версия РНР должна быть не ниже 5.5

array_multisort($n, SORT_NUMERIC, SORT_DESC, $a);

$s = implode(array_map(function($v) {
    return implode(' ', $v);
}, $a));

echo $s;


А вообще, такое нужно держать в базе, или в файле, то готовым набором: array -> json.

Последний раз редактировалось laimas, 18.03.2019 в 19:47.
Ответить с цитированием
  #5 (permalink)  
Старый 18.03.2019, 19:51
Профессор
Отправить личное сообщение для Sonya Посмотреть профиль Найти все сообщения от Sonya
 
Регистрация: 07.07.2016
Сообщений: 281

Отлично! То, что надо. Большое спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не срабатывает регулярное выражение Kroy Общие вопросы Javascript 5 21.05.2014 13:36
регулярное выражение literator Ваши сайты и скрипты 1 18.08.2013 18:24
регулярные выражение jquery Olesya Общие вопросы Javascript 1 13.10.2012 15:35
Регулярные выражение simple AJAX и COMET 11 09.01.2012 01:00
Регулярные выражения задача посложнее faunder Общие вопросы Javascript 5 15.09.2008 14:17