Мой массив выглядит так:
{
"fileinfo": {
"database": "homestead",
"git": "master",
"date": 12,
"year": 2018,
"month": "October"
}
}
Я хочу забрать gitBranch, дату, месяц, год из массива и распечатать как
1 строка
Я пробовал vsprintf и sprintf, но не понял.
Попробуйте json_decode, это приведет к массиву данных
@KoenHollander, мне не нужен массив. Это уже массив. Мне нужны конкретные ключи и значения в одной строке.
@JonStirling Сложная часть - это не весь массив, а только определенные столбцы
Получение значений ключей определенных имен также не должно вызывать затруднений, поэтому еще раз добавьте код, который вы пытались выполнить.






Предполагая, что у вас есть этот массив как $array
$str = sprintf('Branch: %s, Created: %s %s %s.',
$array['fileinfo']['gitBranch'],
$array['fileinfo']['date'],
$array['fileinfo']['month'],
$array['fileinfo']['year']
);
echo $str;
<?php
$array = array(
"metadata" => array(),
"fileinfo" =>array(
"database" =>"homestead",
"connection" => "mysql",
"gitBranch" => "master",
"minutes" => 41,
"hours" => 13,
"date" => 12,
"year" => 2018,
"month" => "October"
)
);
echo "Branch: {$array['fileinfo']['gitBranch']}, Created: {$array['fileinfo']['date']} {$array['fileinfo']['month']} {$array['fileinfo']['year']}";
Это создает желаемый результат.
Для нескольких массивов выполните foreach() через них с этим внутри, но, очевидно, переменная $array будет тем, что вы установили в цикле.
Мне понравилась идея, как @ sietse85 использовал sprintf для их объединения. но все равно спасибо
Мне это тоже очень нравится! Придется попробовать и использовать в будущем!
Кроме того, возможно, вам стоит проверить это только для более полного понимания обоих решений: stackoverflow.com/questions/7147305/…, который также ссылается на это: judebert.com/progress/archives/…, который посвящен производительности форматирования строк PHP
Добавьте свои попытки к вашему вопросу. В объединении строк не должно быть ничего сложного.