2016-12-05 13 views
1

Hy Guys、もう一度問題があります。今度は私のララブプロジェクトと一緒に。アレイをlaravelコントローラのjsonに変換する

私はこのようなコントローラ機能があります。

public function postDetail(Request $request) 
{ 
    $product_requests = $request->sku; 
    $arr = []; 
} 

そして、私の$request->skuはこのように見えた:

[612552892 => ['quantity' => '1'], 625512336 => ['quantity' => '10']] 

しかし、私はこのようなJSONファイルが必要ですので、

[{"sku_id": 612552892, "quantity": "1"}, {"sku_id": 625512336, "quantity": "10"}] 

を私も鍵を作ってくれるの?しかし..どのように?

と私はforeachループでそれを作る必要があると思いますか?誰でも私を助けることができますか?

答えて

3

$arrSku = array('612552892' => array('quantity' => 1), '625512336' => array('quantity' => 10)); 

$arrNewSku = array(); 
$incI = 0; 
foreach($arrSku AS $arrKey => $arrData){ 
    $arrNewSku[$incI]['sku_id'] = $arrKey; 
    $arrNewSku[$incI]['quantity'] = $arrData['quantity']; 
    $incI++; 
} 

//Convert array to json form... 
$encodedSku = json_encode($arrNewSku); 

print('<pre>'); 
print_r($encodedSku); 
print('</pre>'); 

//Output: 
[{"sku_id":612552892,"quantity":1},{"sku_id":625512336,"quantity":10}] 

はこれがあなたのために働くことを願っています。

+0

インデックス '$ incI'を作成する際に連想配列(sku、quantity)を開始する必要があります。そうでないと警告がたくさん出るでしょう –

+0

@JulienLachal [phpFiddle] (http://phpfiddle.org/)私はここに配置し、任意の単一のエラーなしで正常に動作する前に。あなたが理解したいと思っています。 –

+0

yeaahそれは動作します:D、ありがとう男 – ajussi

3

$encodedSku = json_encode($request->sku);を使用すると、配列の代わりに適切なJSONを使用できます。あなたはそれが以下のようなjson_encode()を適用した後、適切な形式に配列を変換する必要が

+0

aaah!それは変更されます、あなたは正しいですが、 'sku_id'キーを持たない – ajussi

+0

配列を作成するときにキーを手動で作成する必要がありますか? – ajussi

+1

の場合は、配列内のキーを変更するか、最初の配列から新しい配列を作成する必要があります。あなたが必要とするキーを推測することはできません; –

関連する問題