@fakin_kiska

Как достать одинаковые ключи из разных массивов?

Каким образом можно при нажатии на кнопку достать текст из массива, где повторяются ключи (например cocktail_history), но таких массивов несколько и они расписаны отдельно (допустим, таких массивов 3 и в каждом свой список коктейлей, но везде повторяются ключи для них)?

Массивы и основной код:

$the_unforgettables = [
    'negroni' => [
        'cocktail_name' => 'name1',

        'cocktail_history' => 'history1',

        'cocktail_composition' => 'composition1',

        'cocktail_cooking' => 'cooking1',

        'cocktail_photo' => 'photo1'
    ],
];

$$contemporary_classic = [
    'white_russian' => [
        'cocktail_name' => 'name2',

        'cocktail_history' => 'history2',

        'cocktail_composition' => 'composition2',

        'cocktail_cooking' => 'cooking2',

        'cocktail_photo' => 'photo2'
    ],
];

if ($the_unforgettables[$callback_data]) {
$cocktail = $the_unforgettables[$callback_data];
$post = [
    'chat_id' => $chat_id,
    'message_id' => $message_id,
    'text' => $cocktail['cocktail_name'] . "\n\n" . "Ссылка на фото: " . $cocktail['cocktail_photo'],
    'parse_mode' => 'html',
    $cocktail_buttons = [
        [['text' => 'Краткая история', 'callback_data' => 'short_story']],
        [['text' => 'Состав', 'callback_data' => 'composition']],
        [['text' => 'Приготовление', 'callback_data' => 'preparation']],
        [['text' => '<<< В меню', 'callback_data' => 'start']]
    ],
    'reply_markup' => inline_keyboard($cocktail_buttons)
];
sendRequest('editMessageText', $post);
} elseif ($contemporary_classic[$callback_data]) {
$cocktail = $contemporary_classic[$callback_data];
$post = [
    'chat_id' => $chat_id,
    'message_id' => $message_id,
    'text' => $cocktail['cocktail_name'] . "\n\n" . "Ссылка на фото: " . $cocktail['cocktail_photo'],
    'parse_mode' => 'html',
    $cocktail_buttons = [
        [['text' => 'Краткая история', 'callback_data' => 'short_story']],
        [['text' => 'Состав', 'callback_data' => 'composition']],
        [['text' => 'Приготовление', 'callback_data' => 'preparation']],
        [['text' => '<<< В меню', 'callback_data' => 'start']]
    ],
    'reply_markup' => inline_keyboard($cocktail_buttons)
];
sendRequest('editMessageText', $post);

switch ($callback_data) {
case 'short_story':
    $post = [
        'chat_id' => $chat_id,
        'message_id' => $message_id,
        'text' => ???,
        'parse_mode' => 'html'
    ];
    sendRequest('editMessageText', $post);
    break;
}
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@fakin_kiska Автор вопроса
Это можно сделать через array_merge()
https://www.php.net/manual/ru/function.array-merge.php
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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