Здравствуйте! Условие задачи: " Объявите массив, где в качестве ключей будут использоваться названия областей, а в качестве значений – массивы с названиями городов из соответствующей области. Выведите в цикле значения массива, чтобы результат был таким: Московская область: Москва, Зеленоград, Клин Ленинградская область: Санкт-Петербург, Всеволожск, Павловск, Кронштадт Рязанская область …" Удалось решить так: Код (PHP): <?php $city_rus = array( "Московская область" => array("Москва", "Зеленоград", "Клин", "Можайск"), "Ленинградская область" => array("Санкт-Петербург", "Петергоф", "Тихвин", "Подпорожье", "Кронштадт"), "Рязанская область" => array("Рязань", "Касимов", "Ряжск", "Скопин", "Рыбное"), "Республика Карелия" => array("Петрозаводск", "Олонец", "Суоярви", "Сортавала", "Беломорск", "Кемь", "Питкяранта") ); foreach ($city_rus as $regions => $city_reg) { // Вывести названия регионов с двоеточием с новой строки echo ("<br /> $regions: <br />"); foreach ($city_reg as $city_rus) { // Вывести названия городов через пробелы и запятые в одну строку echo ("$city_rus, "); } } ?> Как удалить последнюю запятую в строке городов? Как установить отступ в начале строки городов? PHP, JavaScript, SQL и другой код пишите внутри тегов Код ( (Unknown Language)): [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
Код (PHP): foreach ($city_rus as $regions => $city_reg) { echo $regions , ':<br>', implode(', ', $city_reg), '<br>'; }
Re: Удалить запятую и установить отступ в многомерном массив Спасибо! А как же сделать еще и отступ в начале строки с городами?
Какой отступ? Справа, слева, сверху, от чего? Добавлено спустя 7 минут 43 секунды: Re: Удалить запятую и установить отступ в многомерном массиве Может список определений подойдет. Код (PHP): <dl> <?php foreach ($city_rus as $regions => $city_reg): ?> <dt><?=$regions?></dt> <dd><?=implode(', ', $city_reg)?></dd> <?php endforeach; ?> </dl>
Re: Удалить запятую и установить отступ в многомерном массив "Московская область: Москва, Зеленоград, Клин, Можайск" Отступ в начале строк с городами - перед "Москва" должен быть отступ или margin.
Один вариант, я вам показал выше. Если сброс стилей не используете, то отступ у <dd> будет по умолчанию. Но в принципе, можете использовать любые другие теги, а доиграть уже стилями. Добавлено спустя 4 минуты: Re: Удалить запятую и установить отступ в многомерном массиве P.S. Даже если без тегов, то можно добавить один или несколько неразрывных пробелов. Хотя как-то это некошерно... Код (PHP): foreach ($city_rus as $regions => $city_reg) { echo $regions , ':<br> ', implode(', ', $city_reg), '<br>'; }
Код (PHP): foreach ($city_rus as $regions => $city_reg) { echo' ',$regions,':<br>',implode(', ',$city_reg),'<br>'; }
Re: Удалить запятую и установить отступ в многомерном массив уже проверено - не действует. Добавлено спустя 3 минуты 21 секунду: Re: Удалить запятую и установить отступ в многомерном массиве Это работает! Почему некошерно?
Re: Удалить запятую и установить отступ в многомерном массив Вроде бы если после echo написать "\t" должен добавиться отступ(табуляция). Но я могу ошибаться, проверьте.
Еще требуется вывести города, начинающиеся с буквы К. Получился двухэтажный код: Код (PHP): $city_rus = array( "Московская область" => array("Москва", "Зеленоград", "Клин", "Можайск"), "Ленинградская область" => array("Санкт-Петербург", "Петергоф", "Тихвин", "Подпорожье", "Кронштадт"), "Рязанская область" => array("Рязань", "Касимов", "Ряжск", "Скопин", "Рыбное"), "Республика Карелия" => array("Петрозаводск", "Олонец", "Суоярви", "Сортавала", "Беломорск", "Кемь", "Питкяранта") ); foreach ($city_rus as $regions => $city_reg) { echo $regions , ':<br> ', implode(', ', $city_reg), '<br>'; } echo 'Города, начинащиеся с буквы К: '; foreach ($city_rus as $regions => $city_reg) { foreach ($city_reg as $city_rus) { if ($city_rus{0} == 'К') echo "$city_rus, "; } } . Опять в конце строчки лишняя запятая. Как удалить запятую в конце строки?
Re: Удалить запятую и установить отступ в многомерном массив Абсолютно также, как в первом случае. Всё ж уже написано.
т.е. так?: Код (PHP): echo 'Города, начинащиеся с буквы К: '; foreach ($city_rus as $regions => $city_reg) { if ($city_reg{0} == 'К') echo implode(', ', $city_reg), '.'; } Вы напутали, этот код не работает.
Re: Удалить запятую и установить отступ в многомерном массив Почитал форумы на эту тему. Оказывается удаление последнего символа большая проблема. А мне требуется после удаления запятой в массиве еще поставить точку вместо нее.
Re: Удалить запятую и установить отступ в многомерном массив Нет тут никаких проблем. Просто нужно выкинуть поповские видеокурсы и прочитать документацию по языку.
Я как раз ничего не напутал. Вы вроде учитесь, а думать всё равно не хотите. Задача 1: Код (PHP): foreach ($city_rus as $regions => $city_reg) Что здесь происходит? Проходим по двумерному массиву $city_rus по паре ключ=>значение. У нас получается, что в $regions лежит ОДИН регион, а в $city_reg МАССИВ городов этого региона. Чтобы из массива получить строку, мы используем implode(', ', $city_reg). Задача 2: Код (PHP): foreach ($city_rus as $regions => $city_reg) { foreach ($city_reg as $city_rus) Что здесь происходит? Первая строчка - описана выше. Но дальше мы проходим по МАССИВУ $city_reg, а в $city_rus у нас находится ОДНО значение. implode склеивает в строку МАССИВ, а его то НЕТ, там на данный момент СТРОКА. И какие такие форумы вы читали, что последний символ сложно удалить? Если это строка, то запросто можно удалить функцией trim(). Если склеивать массив в строку с помощью implode, то вообще чаще всего не приходится ничего удалять. Как в первом случае. В общем, даю решение, но неполное. Думаю, поймёте, что сделать дальше. И всё-таки, для того, чтобы чему-нибудь научиться, недостаточно просто спросить на форуме, получить готовый ответ, просто его вставить в файл и радостно кричать "ура, получилось, задача решена, пойду смотреть дальше, что бы там ещё такого на форуме спросить". Попробуйте сами прочитать мой код, понять, как он работает. Тем более он ни разу не сложный. Вот если сами захотите этого - толку будет больше. Можете даже написать здесь, на форуме, как понимаете код. А там вам скажут, правильно ли вы поняли или нет. И если неправильно, то скажут почему. Код (PHP): $city_rus = array( "Московская область" => array("Москва", "Зеленоград", "Клин", "Можайск"), "Ленинградская область" => array("Санкт-Петербург", "Петергоф", "Тихвин", "Подпорожье", "Кронштадт"), "Рязанская область" => array("Рязань", "Касимов", "Ряжск", "Скопин", "Рыбное"), "Республика Карелия" => array("Петрозаводск", "Олонец", "Суоярви", "Сортавала", "Беломорск", "Кемь", "Питкяранта") ); foreach ($city_rus as $regions => $city_reg) { echo $regions , ':<br> ', implode(', ', $city_reg), '<br>'; } echo 'Города, начинащиеся с буквы К: '; $kCityArr = []; foreach ($city_rus as $regions => $city_reg) { foreach ($city_reg as $city_rus) { if ($city_rus{0} === 'К'){ $kCityArr[count($kCityArr)] = $city_rus; } } } var_dump($kCityArr);
Re: Удалить запятую и установить отступ в многомерном массив не знаю кто такой Попов и с его видеокурсами тоже незнаком. Я учусь по книге Дмитрий Лямин, Александр Никитин "PHP — это просто." (+ CD-ROM с видеокурсами)http://www.ozon.ru/context/detail/id/8465472/?partner=moisey&from=bar. я это где-то уже слышал.
Re: Удалить запятую и установить отступ в многомерном массив Ну Русаков или что там они ещё придумали. Какая разница? Вам mr.akv настолько все подробно расписал, что дальше просто некуда, но вы этого не понимаете, т.к. видеокурсы не дают базовых концепций на которых все строится, они есть только в документации к языку и книгам/статьям по алгоритмам, шаблонам, методологиям и т.п. Пока вы с этим не ознакомитесь, толку не будет никакого, а все эти "магазины за один день", не более чем откровенное мошенничество в расчете на падкого до халявы человека. Это нормально, не вы первый, не вы последний. Просто знайте, что зря тратите своё время. Начните изучение с основ, не бойтесь читать документацию, в т.ч. и на английском и тогда подобных вопросов просто не будет возникать.
Re: Удалить запятую и установить отступ в многомерном массив Код не понял. Нарисовал блок-схему алгоритма обхода массива. https://cloud.mail.ru/public/5tSs/Z3wkZH1Nq На каждом шаге по внешнему циклу двумерного массива с регионом внутренний цикл с городами выполняется столько раз сколько городов. Количество внутренних циклов на каждом внешнем цикле зависит от количества городов внутреннего цикла. Нарисовал блок-схему алгоритма поиска городов с буквы К: https://cloud.mail.ru/public/FjNW/HokrZvR8C Прошу проверить правильно ли. У меня сомнение в месте установки "вывод городов". Блок-схемы можно редактировать: https://www.lucidchart.com/documents/view/0066050c-182f-4e8c-9e01-ec098de37fc9 https://www.lucidchart.com/documents/view/042ea937-bd79-4789-8882-d6c386c94ef6 Эти ссылки будут доступны 4 дня.
Видимо браузер его не добавляет и считает лишним. - начальный пробел строки. А лучше отделить тегами и стилями раздвинуть, как нужно и чище будет. mr.akv, Код (PHP): $town='Киров'; echo $town[0]; //� echo substr($town,0,1); //� echo mb_substr($town,0,1,'utf-8'); //К И лучше будет рекурсию заюзать и красиво расписать в функции.