Хотите конвертировать массив в формате JSON с конкретным форматом? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть массив в формате

Array
(
[1] => Array
    (
        [Id] => 1
        [Name] => Anaa Airport (AAA)
        [IsDomestic] => 0
    )

[2] => Array
    (
        [Id] => 2
        [Name] => Arrabury Airport (AAB)
        [IsDomestic] => 0
    )
)

Я хочу изменить его на этот формат

[
{"Name":"Anaa (AAA)","Id":1,"IsDomestic":0},
{"Name":"Arrabury (AAB)","Id":2,"IsDomestic":0},
]

Я пробовал функцию json_encode, но это дает мне что-то вроде этого

{"1":{"Id":1,"Name":"Anaa Airport (AAA)","IsDomestic":0},
 "2":{"Id":2,"Name":"Arrabury Airport (AAB)","IsDomestic":0}
}

Мне не нужны эти 1,2 ключа, которые.

Я хочу получить данные в точной упомянутой форме.

Ответы [ 3 ]

0 голосов
/ 11 июля 2019
$your_array = Array
(
[1] => Array
    (
        [Id] => 1
        [Name] => Anaa Airport (AAA)
        [IsDomestic] => 0
    )

[2] => Array
    (
        [Id] => 2
        [Name] => Arrabury Airport (AAB)
        [IsDomestic] => 0
    )
);

$new_array = [];
foreach($your_array as $array)
{
  $new_array[] = json_encode($array);
}

dd($new_array);
0 голосов
/ 11 июля 2019

Вы можете использовать array_map для перестановки массива в нужном порядке, чем использовать array_values в json_encode для вывода

$r = array_map(function($v){
  return [
      'Name' => str_replace('Airport ','',$v['Name']), 
      'Id' => $v['Id'], 
      'IsDomestic' => $v['IsDomestic']
  ];
}, $a1);//$a1 is the input array
echo json_encode(array_values($r));

Рабочий пример: https://3v4l.org/GZr6Q

0 голосов
/ 11 июля 2019

Используйте array_values ​​() для удаления индекса

$json_out = json_encode(array_values($your_array_here));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...