Как объединить 2 массива для json

makc0993

Объединил 2 массива

Код (Text):
  1.   $json = array_merge($json_array, $aResult);
  2. echo substr(json_encode ( $json) , 1,-1);

Получаю

Код (Text):
  1. {“name1″:”live303″,”name2”:null},{“Id”:”770″,”MapName”:”EEEEEEEEE”}

А нужно

Код (Text):
  1. {“name1″:”live303″,”name2”:null, “Id”:”770″,”MapName”:”EEEEEEEEE”}  

Т.е. без разделения скобками, как можно реализовать? уже все функции array перепробовал и “+” не объединяет.

 

MouseZver

var_dump $json_array, $aResult ???

substr против инопланетян ?

 

makc0993

Код (Text):
  1. array(1) {
  2.   [0]=>
  3.   array(8) {
  4.     [“name1”]=>
  5.     string(7) “live303”
  6.     [“name2”]=>
  7.     NULL
  8.   }
  9. }
  10. array(1) {
  11.   [0]=>
  12.   array(7) {
  13.     [“Id”]=>
  14.     string(3) “770”
  15.     [“MapName”]=>
  16.     string(9) “EEEEEEEEE”
  17.   }
  18. }

шо это вылезло??

substr для unity ему скобки не нравятся

 

Drunkenmunky

Закодируйте в base64

 

MouseZver

PHP:
  1. <?php
  2.  
  3. echo json_encode ( [ $json_array[0], $$aResult[0] ], JSON_FORCE_OBJECT );
  4.  
  5. // end

И unity понимает только json строку, кодированную объектном формате.

 

makc0993

что то вы не туда повернули)
вопрос был только про объединение двух массивов, то что у меня прекрасно работает трогать не нужно

 

MouseZver

ах да, забыл защиту от копипастеров удалить в коде… o_O

 

makc0993

нет никакой защиты, я сразу правильно поправил, только это не работает тоже самое + добавляется нумерация которая мне не нужна

 

MouseZver

PHP:
  1. echo json_encode ( array_merge ( $a[0], $b[0] ), JSON_FORCE_OBJECT );

пришли результат json который ты получаешь моим кодом

 

Drunkenmunky

Сначала пускай покажет массивы которые объединяет. Чтоб потом в json так отображался.
Это или троллинг какой-то изощренный или я не знаю.

 

MouseZver

o_O Ночью надо спать .

 

Drunkenmunky

@MouseZver,

PHP:
  1. <?php
  2. $json_array = array(“name1”=>“live303”,“name2”=>null);
  3. $aResult = array(“Id”=>“770”,“MapName”=>“EEEEEEEEE”);
  4. $json = array_merge($json_array, $aResult);
  5. echo json_encode ($json);
  6. ?>
 

makc0993

да это работает, только значения массивов неизвестны, получается нужно как-то через цикл прогнать

 

MouseZver

@Drunkenmunky https://php.ru/forum/threads/kak-obedinit-2-massiva-dlja-json.94249/#post-646304
Удачи.

 

Drunkenmunky

Теперь понятно.
@makc0993, MouseZver в свойственной ему манере хочет сказать, что у вас не совсем тот массив каким вы его себе представляете.
И чтобы было “без скобок внутри” нужно элементы многомерного массива извлечь в новый массив.

Да

Если же задача сохранить структуру обоих массивов в json, то без скобок не получится.
MouseZver предложил свой вариант решения.

 

makc0993

Всем спасибо, вот решение

PHP:
  1.  $arrOut = array();
  2.            foreach($json_array as $subArr){
  3.              foreach($subArr as $key => $val){
  4.                $arrOut[$key] = $val;
  5.              }
  6.             }
  7.             $arrOut2 = array();
  8.            foreach($aResult as $subArr){
  9.              foreach($subArr as $key => $val){
  10.                $arrOut2[$key] = $val;
  11.              }
  12.             }
  13. $json = array_merge($arrOut, $arrOut2);
  14.            echo json_encode ($json);
 

Drunkenmunky

$arrOut* замените на $json
13 строка, соответственно, не нужна

 

makc0993

заменил, спасибо

 

roboformation

@makc0993 прикольно у вас кол-во элементов подсчитывается в массивах :D

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *