VortexHum
@VortexHum

Как объединить элементы массива, чтобы получить строку?

Как объединить элементы массива, чтобы получить строку "Толстой Н.М tolstoy@pochta.net 1828"?

И: "Война и мир 1877 Толстой Л.Н.".

$autors = [
'Толстой Л.Н.' => [
    'info' => [
        'birthday' => 1828,
        'mail' => 'tolstoy@pochta.net'
    ],
 
    'books' => [
        'name' => 'Семейное счастье', 'date' => 1859,
        'name' => 'Война и мир', 'date' => 1869,
        'name' => 'Анна Каренина', 'date' => 1877
    ]
]
  • Вопрос задан
  • 1057 просмотров
Решения вопроса 2
glaphire
@glaphire Куратор тега PHP
PHP developer
У Вас немного невалидные входные данные - повторяющийся ключ name в массиве books, я поправила и вывод такой:
<?php
$autors = [
    'Толстой Л.Н.' => [
        'info' => [
            'birthday' => 1828,
            'mail' => 'tolstoy@pochta.net'
        ],

        'books' => [
            ['name' => 'Семейное счастье', 'date' => 1859],
            ['name' => 'Война и мир', 'date' => 1869],
            ['name' => 'Анна Каренина', 'date' => 1877],
        ]
    ]
];

$author = array_keys($autors)[0];

$string1 = key($autors)
    . " " . $autors[$author]["info"]["mail"]
    . " " . $autors[$author]["info"]["birthday"];

$string2 = $autors[$author]["books"][1]["name"]
    . " " . $autors[$author]["books"][1]["date"]
    . " " . $author;

echo $string1 . PHP_EOL;
//Толстой Л.Н. tolstoy@pochta.net 1828
echo $string2 . PHP_EOL;
//Война и мир 1869 Толстой Л.Н.
Ответ написан
Комментировать
DevMan
@DevMan
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
flapflapjack
@flapflapjack
на треть я прав
<?php
foreach($autors as $author => $info)
{
$string[]=$author." ".$info['mail']." ".$info['birthday']
}
?>

var_dump($string);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽