oxojeck
@oxojeck

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

Изучаю php, помогите найти ошибку.

$oblast = array(
	"Московская" => array("Москва", "Реутов", "Сергиев-Посад", "Зеленоград", "Клин"),
	"Ленинградская область"  => array("Санкт-Петербург", "Пушкин", "Колпино", "Всеволожск", "Павловск", "Кронштадт"),
	"Тверская"  => array("Тверь", "Орша", "Дмитрово-Черкассы")
);

echo "<h2>Города с буквы К</h2>";

foreach ($oblast as $skey => $town) {
	foreach ($town as $city) {
		if ($city[0] == "К")
			echo $city . "<br/>";
		else
			echo "1<br/>";
	}
}


substr тоже не выводит. И есть ли отладчик для php, как узнать из-за чего нет вывода в блоке if?
  • Вопрос задан
  • 1920 просмотров
Решения вопроса 1
muhammad_97
@muhammad_97
PHP-разработчик
Попробуйте mb_substr:

if (mb_substr($city, 0, 1) === "К")
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
coderisimo
@coderisimo
а если не $city[0] == "К" , а substr($city, 0 , 1 ) === "К" ?
Ответ написан
PHP не поддерживает мультибайтовые строки в базовых функциях. $str[0] в кириллице не даст результат - в кириллице символ занимает два байта, в итоге мы выдергиваем первый байт двухбайтного символа)). Используйте функции мультибайт - php.net/manual/ru/book.mbstring.php
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы