Форум » Вебмастер и вебдизайн » Языки программирования » Два вопроса по php, массиву, и переменной
Открыть Ответить

Два вопроса по php, массиву, и переменной

5.00

5.00

1
05.08.2010 17:19:44 05.08.2010 17:21:57

Здравствуйте.
Не знаю как реализовать:

Первый вопрос.
Совершается запрос в бд, и в переменную записывается (пример):

машина, стол, арбуз, машина, дыня, стул, арбуз, табурет, яблоко, стол.

Как видите, слова в этой переменной вразнобой, и к тому же повторяются. (Ну вот такой запрос, немогу переделать его))) )

Нужно:
Вывод слов по алфавиту, удалив повторы:
То есть:

Арбуз, дыня, машина, стол, стул... и тд.

Я сделал так:



$words = array_unique($words); // удалили повторы

	foreach ($words as $val) {
		if ($val != '') $kwords[] = "<a href="serch-$val.html">$val</a>";
	}



Выводится:

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

Собственно - вопрос - как отсортировать по алфавиту?

Вопрос два.
Есть переменная. В некоторых случаях она может оканчиваться на ", " (запятую и пробел). Задача: Перед записью этой переменной в бд, делать проверку на последние два символа, и если это символы запятая с пробелом, убирать их. Как?

SLAED CMS 2.6 Lite
PHP 4
Сервер в интернете
Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

05.08.2010 17:28:34 05.08.2010 17:30:49

ОТВЕТ НОМЕР РАЗ:
$words = array_unique($words); // удалили повторы
$array = sort($words);
reset($array);

на выходе получаем: арбуз, дыня, машина.... ну и так далее

ОТВЕТ 2
Разбивай строку на массив по "запятая с пробелом", если последний ключ таковой - рубим... ничего сложного, ты сам отвечаешь на свои вопросы, просто не хочешь смекалку включить

Можно через регулярки, но не пишу, ибо уже 5 лет немогу в них въехать... :))) лень ужасная ))))

Группа
Посетители
Пункты
772
Регистрация
01.06.2006
Пол
Мужчина
Из
Моздок
Предупреждения
Нет
sam07
sam07
3.91

3.91

05.08.2010 17:32:36 05.08.2010 17:33:22

Можно еще строковыми функциями отрезать 2 (или 3, там уже сам посчитай) последних символа и делать проверку...
короче, вариантов масса

Группа
Посетители
Пункты
772
Регистрация
01.06.2006
Пол
Мужчина
Из
Моздок
Предупреждения
Нет
sam07
sam07
3.91

3.91

05.08.2010 17:34:58 05.08.2010 17:45:23

такс, большое спасибо, буду делать и думать))))))

Можно еще строковыми функциями отрезать



Этот вариант мне кажется менее громоздким.

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

05.08.2010 18:13:33 05.08.2010 18:16:51

Вопрос номер два реализовал так:




$ololowords = "это штука, оканчивающаяся на запятую с пробелом, ";
$check_end = substr($ololowords, -2); // отрезаем ДВА последних символа, и записываем их в отдельную переменную
if($check_end == ", ") { // Проверяем. Если равно запятой с пробелом - молча отрезаем от строки два последних символа:
$ololowords = substr($ololowords,0,-2);
}
// ну а если последние два символа не равны запятухе с пробелом - ничего не делаем.
echo $ololowords;

Группа
Посетители
Пункты
729
Регистрация
07.10.2006
Пол
Мужчина
Из
Россия/Москва
Предупреждения
Нет
Goshan
Goshan
3.92

3.92

05.08.2010 18:42:53

За что люблю PHP - за демократичность!
Ну вот, а час назад не знал как решить данную проблему Смайл - 02

Группа
Посетители
Пункты
772
Регистрация
01.06.2006
Пол
Мужчина
Из
Моздок
Предупреждения
Нет
sam07
sam07
3.91

3.91

06.08.2010 05:27:34

Goshan, тоже врубатся стал Смайл - 08

Группа
Клиент
Пункты
2121
Регистрация
02.11.2008
Пол
Мужчина
Из
Пермь
Предупреждения
Нет
ra55551
ra55551
3.75

3.75

Открыть Ответить
Хотите опробовать SLAED CMS в действии?
Идеи и предложения
Обратная связь
Подтверждение

Поделиться
QR-код