Создание многомерного ассоциативного массива с неизвестным количеством циклов из json - PullRequest
0 голосов
/ 19 июня 2019

Итак, я получаю входные данные json.Я не знаю, сколько информации я получу.Я знаю, как превратить это в массив, однако мне нужно перепутать структуру массива.Массив в настоящее время многомерен и ассоциативен, однако использует неправильные ассоциации.Для меня это использует 'label' и 'value, но мне нужно, чтобы эти два были в одном ассоциативном массиве, который использует' x 'и' y ', чтобы я мог использовать их в диаграмме.

Пример json

{
    "metingen": [
        {
            "label": "06-06-2019 13:13:38",
            "value": 25.21
        },
        {
            "label": "06-06-2019 13:51:04",
            "value": 27.69
        },
        {
            "label": "06-06-2019 13:52:04",
            "value": 27.69
        },
        {
            "label": "06-06-2019 13:53:06",
            "value": 27.61
        },
        {
            "label": "06-06-2019 13:54:08",
            "value": 27.56
        },
        {
            "label": "06-06-2019 13:55:08",
            "value": 27.55
        },
        {
            "label": "06-06-2019 13:56:09",
            "value": 27.55
        },
        {
            "label": "06-06-2019 13:57:09",
            "value": 27.53
        },
        {
            "label": "06-06-2019 14:05:12",
            "value": 28.51
        },
        {
            "label": "06-06-2019 14:06:12",
            "value": 28.53
        },
        {
            "label": "06-06-2019 14:07:13",
            "value": 28.51
        },
        {
            "label": "06-06-2019 14:08:13",
            "value": 28.51
        },
        {
            "label": "06-06-2019 14:09:14",
            "value": 28.53
        },
        {
            "label": "06-06-2019 14:10:14",
            "value": 28.52
        },
        {
            "label": "06-06-2019 14:11:15",
            "value": 28.52
        },
        {
            "label": "06-06-2019 14:12:15",
            "value": 28.54
        },
        {
            "label": "06-06-2019 14:13:16",
            "value": 28.53
        },
        {
            "label": "06-06-2019 14:14:16",
            "value": 28.48
        },
        {
            "label": "06-06-2019 14:15:17",
            "value": 28.39
        },
        {
            "label": "06-06-2019 14:16:17",
            "value": 28.37
        }
    ],
    "title": "Temperature for ICT Boven"
}

PHP, который я использую

$dataPoints = array();
foreach($charts as $key=> $chart)
{
    $j=0;
    $x=$chart[0]['label'];
    $y=$chart[0]['value'];
    $i=array($x,$y);
    $dataPoints[0]=$i;
}
dataPoints array
(
   array("x"=>"06-06-2019 13:13:38","y"=>25.21)//And then a lot of these arrays
)

Ответы [ 2 ]

0 голосов
/ 19 июня 2019

вы можете использовать foreach с json_decode

$jToArr = json_decode($json, true);
$res = [];
foreach($jToArr['metingen'] as $key => $value){
  $res[] = ['x' => $value['label'], 'y' => $value['value']];
}
print_r($res);

Рабочая ДЕМО

0 голосов
/ 19 июня 2019

Вы можете использовать array_map с array_combine следующим образом,

$temp['metingen'] = array_map(function ($item) {
    return array_combine(['x', 'y'], $item); // x and y are keys and label and value are values
}, $temp['metingen']);

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...