2014-11-28 3 views
2

Привет У меня есть PHP-массив, который выглядит следующим образом var_dumpedPHP массивы и массив объектов

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 
     ); 

это выполняемый в Еогеаспе, что было бы лучшим способом, чтобы получить массив это генерируется, чтобы выглядеть как второй пример?

+3

'$ todayarray [] = (объект) Array (...),' бы привести массив к объекту и добиться того, чего вы хотите. См.: Http://3v4l.org/VWd0b – naththedeveloper

+0

@ ɴᴀᴛʜ Уверен, очень вам очень благодарен, напишите как ответ и плохо выверните и отметьте как ответ – Oisian2

+0

Soooo ... у вас есть * объект * ('$ v') который вы идете на большие длины, чтобы превратиться в массив, но что вы действительно хотите, это оригинальный объект? Тогда просто не делайте все это преобразование массива ...?! Я не понимаю. – deceze

ответ

1
foreach($top_array as $item) { 
    $object = news stdClass; 
    $object->... = $item[...]; 
    $object->... = $item[...]; 
    ... 
    object_array[] = $object; 
} 
0

Что-то, как это будет работать:

$todayarr = new stdClass; 

$properties = array('prop1', 'prop2'); 

foreach ($properties as $p) 
    $todayarr->$p = 'some value of property ' . $p; 


var_dump($todayarr); 
4

Самый простой способ будет просто привести массив к объекту.

$todayarray[] = (object) Array(...); 

См. a working demo.

Подробнее о типе литье на PHP manual

Смежные вопросы