PHP数组和数组对象
嗨,我有一个PHP数组,它在var_转储时是这样的PHP数组和数组对象,php,arrays,Php,Arrays,嗨,我有一个PHP数组,它在var_转储时是这样的 array (size=3) 0 => array (size=8) 'Product_code' => string 'CAB55FR' (length=7) 'Elapsed' => string '0' (length=1) 'Count' => string '42' (length=2) 'Scrap' => string '0' (length=1) 'ScrapPercentag
array (size=3)
0 =>
array (size=8)
'Product_code' => string 'CAB55FR' (length=7)
'Elapsed' => string '0' (length=1)
'Count' => string '42' (length=2)
'Scrap' => string '0' (length=1)
'ScrapPercentage' => string '0.00' (length=4)
'Perhour' => null
'Target' => float 40
'Eff' => string '105%' (length=4)
1 =>
array (size=8)
'Product_code' => string 'MSTACK60' (length=8)
'Elapsed' => string '0.05' (length=4)
'Count' => string '0' (length=1)
'Scrap' => string '0' (length=1)
'ScrapPercentage' => null
'Perhour' => string '0.00' (length=4)
'Target' => string 'No Target set' (length=13)
'Eff' => string 'No Target set' (length=13)
但是,我希望数组是这样的
array (size=3)
0 =>
object(stdClass)[8]
public 'Product_code' => string 'CAB55FR' (length=7)
public 'Elapsed' => string '0' (length=1)
public 'Count' => string '42' (length=2)
public 'Scrap' => string '0' (length=1)
public 'ScrapPercentage' => string '0.00' (length=4)
public 'Perhour' => null
1 =>
object(stdClass)[9]
public 'Product_code' => string 'MSTACK60' (length=8)
public 'Elapsed' => string '0.05' (length=4)
public 'Count' => string '0' (length=1)
public 'Scrap' => string '0' (length=1)
public 'ScrapPercentage' => null
public 'Perhour' => string '0.00' (length=4)
要创建第一个数组,我将使用这段代码
$todayarray[] = Array(
'Product_code' => $v->Product_code,
'Elapsed' => $v->Elapsed,
'Count' => $v->Count,
'Scrap' => $v->Scrap,
'ScrapPercentage' => $v->ScrapPercentage,
'Perhour' => $v->Perhour,
'Target' => $value,
'Eff' => $eff
);
这是在foreach中运行的,要使生成的数组看起来像第二个示例,最好的方法是什么 像这样的方法会奏效:
foreach($top_array as $item) {
$object = news stdClass;
$object->... = $item[...];
$object->... = $item[...];
...
object_array[] = $object;
}
$todayarr = new stdClass;
$properties = array('prop1', 'prop2');
foreach ($properties as $p)
$todayarr->$p = 'some value of property ' . $p;
var_dump($todayarr);
最简单的方法是将数组强制转换为对象
$todayarray[] = (object) Array( ... );
看
阅读有关在
$todayarray[]=(对象)数组(…)上进行类型转换的更多信息
会将数组强制转换为一个对象并实现您想要的结果。见:@ɴᴀᴛ当然非常感谢你,我会发帖回答你,我会回复你,马克回答你。。。您有一个对象($v
),您将竭尽全力将其转换为数组,但您真正想要的是原始对象?那就不要做所有的数组转换。。。?!我不明白。@deceze原始对象来自PDO::Fetchall,我需要在结果中添加和更改一些内容,但处理Fetch all输出的现有代码使用原始对象,因此对我来说,只需执行我需要的操作并将其作为一个对象放回就可以了object@oisian:为什么不获取对象()?默认情况下,它获取stdclass。