Re: Stripping [ ] from JSON arrays

Y A <[email protected]> Thu, 16 Feb 2023 04:51:07 -0800 (PST)
Newsgroups comp.lang.php
Message-ID <[email protected]>
You have looked out: http://webchatsoftware.ezyro.com ?




On Tuesday, January 10, 2023 at 10:10:19 AM UTC+2, Stefan Froehlich wrote:
> In comp.lang.php The Doctor <[email protected]> wrote: 
> > $contact_details=[]; 
> [...]
> > $contact_details[] = array( 
> > "contact_details"=>array( 
> > 'first_name' =>$_POST['bill_first_name'], 
> > 'last_name' => $_POST['bill_last_name'], 
> > 'email' => $_POST['email'], 
> > 'phone' => $_POST['bill_phone'], 
> > ) 
> > );
> [...] 
> > $myObj = array_merge($storevalues,$cartarray,$contact_details,$billing_details); 
> > $myJSON = json_encode($myObj);
> > Here is and example of what is generated: 
> 
> > [{"username":"demouser","password":"password","store_id":"store3","checkout_id":"chkt23NGFtore3","api_token":"yesguy","txn_total":"189.00","environment":"qa","action":"preload"},{"cart":[[{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Protecting Pollinators","product_code":"PP-1294","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Agricultural Health Study","product_code":"AHS-1298","unit_cost":60,"quantity":"1"}},{"items":{"url":"https:\/\/www.pdsolutions.ca\/images\/procircle.png","description":"Pesticide Applicator Records","product_code":"PAR-1302","unit_cost":60,"quantity":"1"}}]]},{"subtotal":180,"tax":{"amount":9,"description":"GST","rate":"0.05"}},{"contact_details":{"first_name":"Dave","last_name":"Yadallee","email":"[email protected]","phone":"7804734587"}},{"billing_details":{"address_1":"","city":"","province":"","country":"CA","postal_code":""}}] 
> 
> > And here is what is being looked for 
> > 
> > { 
> > "store_id":"moneris",
> > [...]
> > } 
> 
> > How do I strip unnecessary [] ?
> First of all, you should strip unnecessary information from your 
> postings - in your case the content of $myObj and the output are the 
> only necessary information. 
> 
> #v+ 
> $a = array(); 
> $b = array(); 
> $a[] = ['contact_details' => ['y' => 'z']]; 
> $b[] = ['billing_details' => ['y' => 'z']]; 
> $c = array_merge($a, $b); 
> var_dump(json_encode($c)); 
> #v- 
> 
> string(59) "[{"contact_details":{"y":"z"}},{"billing_details":{"y":"z"}}]" 
> 
> 
> #v+ 
> $a = ['contact_details' => ['y' => 'z']]; 
> $b = ['billing_details' => ['y' => 'z']]; 
> $c = array_merge($a, $b); 
> var_dump(json_encode($c)); 
> #v- 
> 
> string(55) "{"contact_details":{"y":"z"},"billing_details":{"y":"z"}}" 
> 
> So there is no need to use reduce() or anything else. You are simply 
> using one (non-associative) level of arrays too much. This would be 
> easier to debug if you add a print_r($myObj); to your debugging 
> output. 
> 
> 
> Personally I'd prefer another version without the irritating 
> array_merge for better readability, but this is just a matter of 
> taste producing the same array and the same output: 
> 
> #v+ 
> $a = ['y' => 'z']; 
> $b = ['y' => 'z']; 
> $c = ['contact_details' => $a, 'billing_details' => $b]; 
> var_dump(json_encode($c)); 
> #v- 
> 
> Bye, 
> Stefan 
> 
> -- 
> http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich 
> Offizieller Erstbesucher(TM) von mmeike 
> 
> Stefan: die süße Verführung! 
> (Sloganizer)