Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.08.2012
Сообщений: 9
1

Сортировка массивов

19.08.2012, 13:08. Показов 673. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
PHP
1
2
3
4
5
6
7
$result=file("путь к файлу"); 
 $int=count($result);  
 sort( $result );
 foreach($result as $value) 
 {
 echo '<div class="c">- '.$value.'</div>';
 }
Вот код, выводит строки из файла по алфавиту. Есть пару вопросов. Как сделать так что бы он не всю строку выводил, а например до знака ;
Еще вопрос как сделать что бы он сортировал не по имени, а по числам которые стоят в конце строки за знаком ;
НУ например строка: текстекстекстекст ; 456
Нужно что бы сортировка шла по числу 456 и т.д.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2012, 13:08
Ответы с готовыми решениями:

сортировка массивов
Есть массив, содержащий такие сведения о литературных произведениях, как название, автор и год...

Сортировка нескольких массивов
В цикле создается несколько массивов. for ($i=0; $i&lt;16; $i++) { .... $c1 = 121; $c2 = 2323;...

Сортировка вывода двух массивов
Есть два ассоциативных массива нужно вывести их в цикле, так что бы сортировались по дате: ...

Считывание массивов, ассоциативных массивов из файлов
Есть 2 массива - выведено через print_r Array ( =&gt; Array ( =&gt; Менеджер 3 =&gt; Array ( =&gt; Array (...

5
web dev
107 / 93 / 9
Регистрация: 23.09.2010
Сообщений: 737
19.08.2012, 13:15 2
Используйте http://php.net/manual/ru/function.strripos.php
Сортировка по числу - с помощью регулярных выражений можно
1
0 / 0 / 0
Регистрация: 18.08.2012
Сообщений: 9
19.08.2012, 14:18  [ТС] 3
спс за подсказку, воспользовался strstr()
А насчет регулярных выражений щас посмотрю, подумаю =)

Добавлено через 35 минут
А можно какой нибудь примерчик по вопросу как сделать что бы он сортировал не по имени, а по числам которые стоят в конце строки за знаком ;
НУ например строка: текстекстекстекст ; 456
Нужно что бы сортировка шла по числу 456 и т.д.
0
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
19.08.2012, 14:37 4
Если предположить, что в конце каждой строки есть ; с числом и все числа уникальные, тогда так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$result = array(
    'aaassddasd; 344',
    'ressaaererffds; 142',
    'ccvfgrfg; 18'
); 
 
$sorted = array();
foreach($result as $value)
{
    preg_match('#;(\s*)(\d+)(\s*)$#', $value, $matches);
    if (isset($matches[2]))
    {
        $sorted[(int)$matches[2]] = preg_replace('#;(\s*)(\d+)(\s*)$#', '', $value);
    }
}
 
if (count($sorted))
{
    ksort($sorted);
    foreach($sorted as $value) 
    {
        echo '<div class="c">- '.$value.'</div>';
    }
}
1
0 / 0 / 0
Регистрация: 18.08.2012
Сообщений: 9
19.08.2012, 15:42  [ТС] 5
то что нужно, спс.

Добавлено через 49 минут
Еще вопрос. Есть массив
[0] = [текст1 , текст2]
[1] = [текст11 , текст22]
[2] = [текст111 , текст222]
Как сделать что бы текст2,22,222 стали клучами своей строки массива, но при этом текст1,11,111 остались бы в массиве и дальше.
0
67 / 60 / 25
Регистрация: 05.05.2009
Сообщений: 131
19.08.2012, 18:41 6
Аналогично, только регулярка другая
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$result = array(
    'текст1 , текст2',
    'текст11 , текст22',
    'текст111 , текст222'
); 
 
$sorted = array();
foreach($result as $value)
{
    preg_match('#,(\s*)(.+)(\s*)$#', $value, $matches);
    if (isset($matches[2]))
    {
        $sorted[$matches[2]] = preg_replace('#,(\s*)(.+)(\s*)$#', '', $value);
    }
}
 
echo '<pre>'.print_r($sorted, TRUE).'</pre>';
1
19.08.2012, 18:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.08.2012, 18:41
Помогаю со студенческими работами здесь

программы усложненной структуры, обработка двухмерных массивов, использование стандартных функций для работы с массивами, сортировка массивов.
Искала задачи, нашла в с++, а нужно в паскале сотворить следующее. Использование стандартных...

Сортировка массивов по убыванию и замена массивов
Задача: Даны два массива: А3 и В3х3. Массив А упорядочить по убыванию и заменить им первую строку...

Обработка одномерных массивов. Сортировка массивов
Здравствуйте, помогите пожалуйста решить задачу легким способом. В одномерном массиве, состоящем...

Обработка одномерных массивов. Сортировка массивов
Здравствуйсте! Помогите пожалуйста написать программу! В одномерном массиве, состоящем из n...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru