Слияние результирующего набора Eloquent - PullRequest
0 голосов
/ 02 июля 2018

У меня есть два красноречивых выхода

allowance   Amount
A           100
B           80
C           120
D           150

И

Deductions  Amount
X           50
Y           60
Z           70

и json отображается как

$allowance = [{"allname":"A","allamount":"100"},{"allname":"B","allamount":"80"},{"allname":"C","allamount":"120"},{"allname":"D","allamount":"150"}]
$Deductions = [{"dedname":"X","dedamount":"50"},{"dedname":"Y","dedamount":"60"},{"dedname":"Z","dedamount":"70"}].

Я хочу, чтобы новый JSON был похож на

$new = [{"allname":"A","allamount":"100","dedname":"X","dedamount":"50"},{"allname":"B","allamount":"80","dedname":"Y","dedamount":"60"},{"allname":"C","allamount":"120","dedname":"Z","dedamount":"70"},{"allname":"D","allamount":"150"}]

Пожалуйста, ведите меня. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Попробуйте этот код, вы можете получить то, что вы хотите:

$a = array(array('allname'   =>'A','allamount'=>'100'),
           array('allname'   =>'B','allamount'=>'200'),
           array('allname'   =>'C','allamount'=>'300'));

$b = array(array('dedname'   =>'X','dedamount'=>'50'),
           array('dedname'   =>'c','dedamount'=>'150'));

$all=array();

for ($i=0; $i < count($a); $i++) { 

   $merged="";   

   if (isset($b[$i])) {

      $merged=array_merge($a[$i],$b[$i]);

   }else{

      $merged=$a[$i];
   }

   $all[]=$merged;
}

echo "<pre>";print_r($all);echo "<br";

header('Content-Type: application/json');

echo json_encode($all);

выход:

[{ "allname": "А", "allamount": "100", "dedname": "X", "dedamount": "50"}, { "allname": "В", "allamount" : "200", "dedname": "с", "dedamount": "150"}, { "allname": "С", "allamount": "300"}]

Надеюсь, это поможет вам.

0 голосов
/ 02 июля 2018

Допустим, у вас есть две коллекции

$firstCollection = collect(['one','two']);

$collectionTwo = collect(['three','four']);

$firstCollection->merge($collectionTwo);

с использованием merge() объединит две коллекции.

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