[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка наверно
Миша
Надо сделать так, посоветуйте алгоритм.


Алтайский край
Амурская область
Архангельская область
Астраханская область

Белгородская область
Брянская область

Владимирская область
Волгоградская область

_____________
Принимаю заказы, писать в ЛС
Arh
Так на вскидку, разобрать текст по переводу строки через explode тот же.
Потом форычем заменять первую букву. Рядом делать еще один массив с буквами, которые уже были заменены.

$буква = 'первая буква';
if (empty($массив[$буква])) {

//тут заменить

$массив[$буква] = true;

}


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Valick
можно при помощи CSS (первая литера абзаца)
можно на этапе вывода вычленять отдельным спаном
можно даже SQL нахлабучить

а теперь вопрос... нужна ли тут регулярка?

Цитата (Arh @ 26.12.2015 - 11:34)
Потом форычем заменять первую букву. Рядом делать еще один массив с буквами, которые уже были заменены.

ай мамочки smile.gif

_____________
Стимулятор ~yoomoney - 41001303250491
Arh
Valick
Цитата
ай мамочки

php головного мозга laugh.gif

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
chee
Медведь, если дело в том как оформить, то CSS без вариантов.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Миша
Цитата (chee @ 26.12.2015 - 13:10)
Медведь, если дело в том как оформить, то CSS без вариантов.

Из базы у меня выдёргивается так, точнее массив:

Алтайский край
Амурская область
Архангельская область
Астраханская область
Белгородская область
Брянская область
Владимирская область


Понятно, что это будет css, но чтобы сделать стиль для конкретной буквы, я так понимаю без php никак?

_____________
Принимаю заказы, писать в ЛС
Kusss
?>
<style>
div.first:first-letter {
color: red; /* Красный цвет первой буквы */
}
</style>
<?php
$array = array(
'Алтайский край',
'Амурская область',
'Архангельская область',
'Астраханская область',

'Белгородская область',
'Брянская область',

'Владимирская область',
);


foreach ($array AS $value){
$first = substr($value, 1, 1);

$class = ($first != $old) ? 'first' : '';
echo '<div class="'.$class.'">'.$value.'</div>';

$old = $first;
}
убрал отступ с края
Valick
Kusss, я бы всётаки вложенный <p> заюзал


_____________
Стимулятор ~yoomoney - 41001303250491
Kusss
Valick
это как ?
Миша
foreach ($array AS $value){
$first = substr($value, 1, 1);

if(isset($old) {
$text = '<p>';
$old = ':)';
}

if($first != $old) {
$text. = '</p><p>';
}

$text. = $value;
$old = $first;
}


Так?

_____________
Принимаю заказы, писать в ЛС
chee

<?php
$items = array(
'Алтайкский край',
'Амурская область',
'Архангельская область',
'Астраханская область',
'Белгородская область',
'Брянская область',
'Владимирская область',
'Волгоградская область ',
);


$blocks = array();
foreach ($items as $item) {
$blocks[mb_substr($item, 0, 2)][] = $item;
}


<html>
<head>
<title>
TODO supply a title</title>
<meta
charset="UTF-8">
<meta
name="viewport" content="width=device-width, initial-scale=1.0">
<style>

p {
font-family: Arial, Helvetica, sans-serif; /* Гарнитура шрифта основного текста */
font-size: 90%; /* Размер шрифта */
}
P:first-letter {
font-family: "Times New Roman", Times, serif; /* Гарнитура шрифта первой буквы */
font-size: 200%; /* Размер шрифта первого символа */
color: red; /* Красный цвет текста */
}
</style>
</head>
<body>
<div>
<?php
var_dump($blocks);?>
<?php
foreach ($blocks as $items) : ?>
<p>
<?php
foreach ($items as $item) : ?>
<?php
echo $item; ?><br/>
<?php
endforeach; ?>
</p>
<?php
endforeach; ?>
</div>
</body>
</html>



Я не знаю что там у тебя с кодировкой, но почему первый символ нужно выбирать 2ой длиной, хотя по правильному это нужно делать длиной равной 1.

Я про эту строчку

$blocks[mb_substr($item, 0, 2)][] = $item;

Если бы кодировка был UTF-8, то нужно было бы сделать так

$blocks[mb_substr($item, 0, 1)][] = $item;


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

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