2016-11-07 66 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