2016-11-07 21 views
3

任何人都可以幫助我
我有一個小問題,下面的代碼用的var_dumpPHP - 轉換的foreach到數組

foreach ($products as $product) { 
    $product->name; 
    $product->code; 
    ... 
} 

我的輸出代碼($產品)

array 
    0 => 
     object(stdClass) 
     ... 
     ... 
     ... 
    1 => 
     object(stdClass) 
     ... 
     ... 
     ... 

我需要輸出這樣的東西

$output = array(
    array('name' => 'item1', 'code' => 'code1', 'price' => '10.00'), 
    array('name' => 'item2', 'code' => 'code2', 'price' => '20.00') 
); 
+0

您可以發佈您要轉換成數組的精確值? –

+0

將foreach轉換爲數組?你的意思是,將對象轉換爲數組。 – Xorifelse

+1

如果是你想要有數組而不是對象,你可以使用'(array)$ whatever',它將把它變成一個數組 – Rasclatt

回答

3

爲此,有一個函數上是php json_decode()

混合json_decode(字符串$ JSON [,布爾$ ASSOC =假[摘要$深度 = 512 [摘要$選項= 0]]])

極品明智地使用這個功能。

正如在功能描述,參見,

的函數的三個參數:

1)變量進行轉換。

2)作爲關聯數組返回。

3)深度:默認值=> 512。深度爲512層(在多維數組或複合對象的情況下),如果第二個參數設置爲true,子元素將被轉換爲數組。

首先將您的變量編碼爲json_encode(),並使用 json_decode()對其進行解碼。

json_decode()的第二個參數應設置爲true

這個true表示返回關聯數組而不是原始類型。

僞代碼:

$output = json_decode(json_encode($yourVar), TRUE); 
+0

你的數組已經有你想要的正確的格式。 –

+0

你說得對,爲什麼我從來沒有想過,謝謝 – Stromox