Внедрить ключи и значения многомерного массива

У меня есть массив, который я пытаюсь преобразовать в две строки, одну с датами и одну со значениями данных. Это образец массива:

[Выходной массив $ ниже]

Array
 (
[2019-03-19] => Array
    (
        [data_values] => 1566
    )

[2019-03-18] => Array
    (
        [data_values] => 1542
    )

[2019-03-17] => Array
    (
        [data_values] => 786
    )

[2019-03-16] => Array
    (
        [data_values] => 756
    )

)

Желаемый результат будет примерно таким:

$dates = '2019-03-19,2019-03-18,2019-03-17,2019-03-16';
$data_values = '1566,1542,786,756';

Я пробовал это, что даст мне data_values, но я не могу получить даты, я полагаю, потому что это ключ массива?

function implode_r($g, $p) {
    return is_array($p) ?
           implode($g, array_map(__FUNCTION__, array_fill(0, count($p), $g), $p)) : 
           $p;
}

$data_values = implode_r(',', $output); 
echo $data_values;

Пожалуйста, изучите, прежде чем задавать вопросы. Это предотвращает размещение повторяющихся вопросов/страниц.

mickmackusa 01.04.2019 05:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать 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 и хотите разрабатывать...
1
1
541
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете просто использовать array_keys и array_column:

$dates = implode(',', array_keys($output));
$data_values = implode(',', array_column($output, 'data_values'));

Демо на 3v4l.org

Это даст вам ожидаемый ответ:

<?php
// Build strings based on array
function implode_r($output) {
    $dates = $data_values = "";
    if (is_array($output)){
        $dates=implode(',',array_keys($output));
        $data_values=implode(',',array_column($output, 'data_values')); 
    }
    return compact('dates', 'data_values');
}

// Example usage
$output = [
    "2019-03-17" => ["data_values" => 1],
    "2019-03-18" => ["data_values" => 2],
    "2019-03-19" => ["data_values" => 3],
    "2019-03-20" => ["data_values" => 4]
];
$result = implode_r($output);
echo $result['dates'];
echo $result['data_values'];

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