Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组和数组对象_Php_Arrays - Fatal编程技术网

PHP数组和数组对象

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

嗨,我有一个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)
  '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。