Como salvar objects JSON em uma matriz?

Em primeiro lugar, aqui está o código que estou usando

$json = file_get_contents('./releases.json'); $data = json_decode($json, TRUE); $region = isset($_GET['region']) ? $_GET['region'] : null; # if region is not null: ?region=8 if ($region) { $region_filter = function($v) use ($region) { // 8 == Worldwide if ($v['region'] == $region || $v['region'] == 8) { return true; } else { return false; } }; $data = array_filter($data['data'], $region_filter); } header('Content-Type: application/json'); echo json_encode(array('data' => $data)); 

Como você pode ver, estou usando array (‘data’ => $ data) para armazenar meus objects JSON ($ data) na matriz chamada ‘data’, mas tudo isso é criar um object pai que tenha todos os outros objects não é uma matriz, como posso corrigir isso? Muito obrigado!

exemplo de releases.json:

 { "last_update_on": "2017-12-30", "data": [{..}, {..}] } 

Se $_GET['region'] não estiver configurado, ignore o código dentro do bloco if e, portanto, ainda tenha $data['data'] nele e depois adicione outro nível com array('data'=>$data) .

Mas se $_GET['region'] estiver configurado, então o código dentro do bloco if irá remover o 'data' nível 'data' nível superior que ele usa $data = array_filter($data['data'], $region_filter); .

Em outras palavras, $data são estruturalmente diferentes dependendo de se o código de bloco if for executado ou não. Experimente isso

 $json = file_get_contents('./releases.json'); $data = json_decode($json, TRUE); $data = $data['data']; $region = isset($_GET['region']) ? $_GET['region'] : null; # if region is not null: ?region=8 if ($region) { $region_filter = function($v) use ($region) { // 8 == Worldwide if ($v['region'] == $region || $v['region'] == 8) { return true; } else { return false; } }; $data = array_filter($data, $region_filter); } header('Content-Type: application/json'); echo json_encode(array('data' => $data));