object(stdClass)数组和返回值

时间:2013-05-28 09:50:38

标签: php arrays stdclass

我好像又被卡住了! - 我周五问了这个问题@Bartdude回答很好 - Array output and date format

这输出了一个像这样的数组 -

[0]=> object(stdClass)#270 (3) 
{ 
["Month(StartDate)"]=> string(1) "4" 
["Year(StartDate)"]=> string(4) "2013" 
["nrOfEvents"]=> string(2) "12" 
} 
[1]=> object(stdClass)#176 (3) 
{ 
["Month(StartDate)"]=> string(1) "5" 
["Year(StartDate)"]=> string(4) "2013" 
["nrOfEvents"]=> string(2) "19" 
} 
[2]=> object(stdClass)#114 (3) 
{ 
["Month(StartDate)"]=> string(1) "6" 
["Year(StartDate)"]=> string(4) "2013" 
["nrOfEvents"]=> string(2) "12" 
} 
}

然后经过一些搜索Stack Exchange后,我发现这将返回nrofEvents -

echo $results[0]->nrOfEvents
// Outputs - 12

我正在努力了解如何在foreach循环中访问数组中的[“Month(StartDate)”]。

我的最终目标是实现一个月份名称表,例如

| 3月(12)| 4月(19)| Jun (12)|

| 7月(3)| 8月(4)| 9月(5)|

任何帮助我理解的帮助都会非常棒,并提前感谢。

4 个答案:

答案 0 :(得分:0)

这样可以访问Month(StartDate)

$results[0]->{'Month(StartDate)'}

但你最好使用数组

答案 1 :(得分:0)

试试这个:

foreach($array as $object) {
   echo $object->{'Month(StartDate)'}, '<br>';
}

答案 2 :(得分:0)

SELECT Month(startdate) AS month, count(id) as nrOfEvents
FROM wp_myEventDates
GROUP BY Month(startdate)

您可以通过以下方式获得月份值:

echo $results[0]->month
// Outputs - 4

答案 3 :(得分:0)

使用此:

$array = [array of dates]
$formats = array();

foreach($array as $key => $object)
{
    $formats[] = date('M', $array[$key]->{Month(StartDate)}) . ' (' . $array[$key]->nrOfEvents . ')';
}

$formats = implode(' | ', $formats);

但是:您应该认真考虑重命名数组值。 ()对变量名无效。