Форум

Открыть Ответить

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

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
Сервер в интернете
Goshan
  • Группа: Посетители
  • Пункты: 729
  • Регистрация: 07.10.2006
  • Пол: Мужчина
  • Из: Россия/Москва
Goshan
3.91

3.91

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

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

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

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

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

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

3.91

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

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

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

3.91

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

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

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



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

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

3.91

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;

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

3.91

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

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

3.91

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

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

3.74

Открыть Ответить

Хотите опробовать SLAED CMS в действии?

Идеи и предложения
Обратная связь