Преобразование словаря в строку (PHP)

Мне нужно написать функцию, которая преобразует словарь (массив) ['a' => 1, 'b' => 2] в строку '[a => 1, b => 2]'.

Я пытаюсь перебрать массив и просто построить строку из его элементов:

function dictToString(array $dict): string {
    foreach($dict as $key => $value) {
        echo $key . " => " . $value . ", ";
    }
    return "";
}

Тем не менее, я не уверен, как выполнить это хорошо. Я получаю такой вывод: a => 1, b => 2,. Не знаю, как поставить скобки и избавиться от лишней запятой.

Также не уверен, что это даже хороший подход, может быть, есть лучший способ.

Это похоже на проблему XY. Как вы думаете, зачем вам нужны данные в таком формате? Это похоже на форматирование, которое приведет только к будущим головным болям/сожалениям. Объясните, как вы собираетесь использовать эту полезную нагрузку после ее создания.

mickmackusa 20.02.2023 00:29

Если вам нужно экспортировать переменную $dict в виде строки в стандартном/допустимом формате массива, то var_export() со вторым параметром true будет достаточно. var_export в строку Это НАМНОГО лучше обрабатывает типы данных, которые не являются просто целыми числами.

mickmackusa 20.02.2023 02:18
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
51
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Возможно будет лучше использовать функцию json_encode

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

mickmackusa 20.02.2023 00:28
Ответ принят как подходящий

Вы можете использовать что-то вроде этого

function dictToString(array $dict): string {
    $str = '[';
    foreach($dict as $key => $value) {
        $str .= $key . " => " . $value . ", ";
    }
    $str = rtrim($str, ", ");
    $str .= ']';
    return $str;
}

echo dictToString(['a' => 1, 'b' => 2]);

rtrim() уберите запятую в последней итерации

Такой подход может нарушить целостность данных, если последнее значение в массиве заканчивается одной или несколькими запятыми. Я не могу представить себе какое-либо профессиональное приложение, где этот фрагмент (или даже требования к вопросу) был бы уместным.

mickmackusa 20.02.2023 00:31

Другие вопросы по теме