2016-12-05 1 views
1

Hy 얘들 아, 다시 문제가 있습니다. 그리고 내 laravel 프로젝트와 함께 이번.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

당신은 아래처럼 json_encode()를 적용한 후에는 적절한 형태로 배열을 변환해야합니다

$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, thanks guys – ajussi

3

$encodedSku = json_encode($request->sku);을 사용하면 배열 대신 적절한 JSON을 사용할 수 있습니다.

+0

aaah! 그것은 바뀌 었습니다. 그러나'sku_id' 키를 ​​가지고 있지 않습니다 – ajussi

+0

배열을 만들 때 수동으로 키를 만들어야합니까? – ajussi

+1

그러면 배열의 키를 변경하거나 첫 번째 배열에서 새 배열을 만들어야합니다. 'json_encode'는 필요한 키를 추측 할 수 없습니다.) –

관련 문제