php устанавливает индекс массива в значение идентификатора - PullRequest
0 голосов
/ 04 ноября 2019

У меня проблема с тем, что я пытаюсь сохранить ID как индекс массива, но когда я преобразую массив в json, ID появляется как объект, а не как элемент массива.

Это краткий пример:

    $ID = 1001 ;
    $item = [] ;
    $item["regional"] = [] ;
    $item["regional"][$ID] = $someInfo ; //object
    json_encode($item) ;

Я возвращаю json в свое приложение, и когда я смотрю на json, форматирующий перечисленные выше списки 1001 как объект:

     [0: 
         { regional:
              { 1001 :
                   someInfoA : valueA
                   someInfoB : valueB
              }
         }
    ]

Если я изменю значение $ID = 0, то он сохранит ID в качестве правильного индекса массива - вот что мне нужно:

    $ID = 0 ;
    $item = [] ;
    $item["regional"] = [] ;
    $item["regional"][$ID] = $someInfo ; //object
    json_encode($item) ;

Выше теперь показано ID = 0 как индекс массива [0]:

     [0: 
         { regional:
              [ 0 :
                   {
                   someInfoA : valueA
                   someInfoB : valueB
                   }
              ]
         }
    ] 

Как получить первый пример, чтобы установить индекс массива как 1001 и трактоваться как элемент массива, а не как объект. Мне нужно сделать это, чтобы я мог быстро увидеть, существует ли этот элемент / идентификатор индекса массива, чтобы либо добавить к нему, либо создать его, а затем добавить к нему.

Если это невозможно, то как можноЯ ищу многомерный массив / объект, чтобы вернуть индекс массива, который содержит значение объекта 1001?

     [0: 
         { regional:
              [ 0 :
                   {
                   ID: 1000
                   someInfoA : valueA
                   someInfoB : valueB
                   }
              ]
              [ 1 :
                   {
                   ID: 1001
                   someInfoA : valueA
                   someInfoB : valueB
                   }
              ]
         }
    ] 

$index = array_key_exists($item["regional"],1001) ;  // or something like this
var_dump($index) ; // index = 1 ;
...