[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобраться с сортировкой
Chel_Hacker777
В общем такое дело. Есть массивы $array[]. В них различные буквы и цифры. Нужно подсчитать повторяющиеся символы "::" в каждом массиве и по их количеству отсортировать массивы, то есть должно получится так: массив $array['0'] содержит больше всего "::", $array['1'] меньше, $array['2'] еще меньше и т.д. Помогите пожалуйста!



Спустя 6 часов, 47 минут, 52 секунды (28.12.2010 - 08:34) Гость_Семён написал(а):
<?php
$array = array ("word_1","word_2","word_2");
$array = array_count_values($arB y); //Считаем
asort($array); //Сортируем массив
?>

Спустя 1 минута, 11 секунд (28.12.2010 - 08:35) Гость_Семён написал(а):
Млин, что с парсером на форуме творится краказяблю творит!

$array = array ("word_1","word_2","word_2");
$array = array_count_values( $array ); //Считаем
asort($array); //Сортируем массив


Спустя 5 часов, 14 минут, 4 секунды (28.12.2010 - 13:49) Chel_Hacker777 написал(а):
Такой вариант не подходит...
Нужно подсчитать в массивах сколько раз встречаются символы "::" и отсортировть массивы от массива содержащего больше других массивов символы "::", до массива, содержащего меньше символов "::".
Я пишу модуль "Переходы".
Вот пример:

$array['0']='super-guest.info:~:1.4.98.184::1.4.200.83::1.6.232.228::1.5.250.7::'; // то есть 4 раза встречается "::"
$array['1']='poisk.icorp.by:~:1.3.58.188::1.202.131.176::'; // то есть 2 раза встречается "::"
$array['2']='icorp.by:~:1.5.172.188::'; // то есть 1 раз встречается "::"
$array['3']='epl-fans.net:~:1.7.255.9::178.123.197.107::1.4.98.199::'; // то есть 3 раза встречается "::"


А в результате должно получится так:
$array['0']='icorp.by:~:1.5.172.188::'; // то есть 1 раз встречается "::"
$array['1']='poisk.icorp.by:~:1.3.58.188::1.202.131.176::'; // то есть 2 раза встречается "::"
$array['2']='epl-fans.net:~:1.7.255.9::178.123.197.107::1.4.98.199::'; // то есть 3 раза встречается "::"
$array['3']='super-guest.info:~:1.4.98.184::1.4.200.83::1.6.232.228::1.5.250.7::'; // то есть 4 раза встречается "::"


Массивов может быть какое угодно количество!
Как можно отсортировать массивы?
Помогите, очень надо! :(

Спустя 2 часа, 3 минуты, 48 секунд (28.12.2010 - 15:53) hellmin написал(а):
У меня так получилось.
$array = array();
$array['0']='super-guest.info:~:1.4.98.184::1.4.200.83::1.6.232.228::1.5.250.7::'; // то есть 4 раза встречается "::"
$array['1']='poisk.icorp.by:~:1.3.58.188::1.202.131.176::'; // то есть 2 раза встречается "::"
$array['2']='icorp.by:~:1.5.172.188::'; // то есть 1 раз встречается "::"
$array['3']='epl-fans.net:~:1.7.255.9::178.123.197.107::1.4.98.199::'; // то есть 3 раза встречается "::"

$sortArray = array();
foreach( $array AS $key=>$value )
{
preg_match_all('/(::)/', $value, $matches);
$sortArray[$key] = count($matches[0]);
}

asort($sortArray);
reset($sortArray);
foreach( $sortArray AS $key=>$value )
echo $array[$key] . '<br>';

Спустя 2 часа, 27 минут, 54 секунды (28.12.2010 - 18:21) Chel_Hacker777 написал(а):
hellmin,
Спасибо большое )))
Все работает!!!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.