如何获得此对象的值?

时间:2014-07-11 12:25:26

标签: php mysql object

Array ( [0] => stdClass Object ( [MIN(budgetmin)] => 2 [MAX(budgetmax)] => 25 [AVG(budgetmin+budgetmax)] => 30 [VALUE] => staff ) ) 

我也试试

foreach($array_values as $values) { 
    echo $values->MIN(budgetmin);
    echo $values->MAX(budgetmax);
    echo $values->VALUE;
}

我没有得到任何结果。

4 个答案:

答案 0 :(得分:4)

您可以使用以下方式获取它:

echo $values->{'MIN(budgetmin)'};

但我觉得你将SQL select-query重写为:

SELECT MIN(budgetmin) AS new_column_name, ...
FROM ...

然后,您可以使用备用列名称更轻松地访问数据:

echo $values->new_column_name;

答案 1 :(得分:3)

遗憾的是,您的类属性的命名不是很好。

$values->MIN(budgetmin);

此行正在尝试使用MIN参数调用budgetmin的方法。这不是你想要的。

$values->{"MIN(budgetmin)"}; 

这可能适合你。

如果失败,您可以修改对象的内容以不包含括号吗?

答案 2 :(得分:1)

您的命名惯例远非理想。考虑选择带有MySQL AS关键字的字段。

$foo = new stdClass();
$foo->{'MIN(budgetMin)'} = 2;
$foo->{'MAX(budgetMax)'} = 25;
$foo->{'AVG(budgetmin+budgetmax)'} = 30;
$foo->{'VALUE'} = 'staff';

$fooArray = array($foo);

foreach($fooArray as $fooElement) {
    echo('MIN(budgetMin): '. $fooElement->{'MIN(budgetMin)'} .'<br />');
    echo('MAX(budgetMax): '. $fooElement->{'MAX(budgetMax)'} .'<br />');
    echo('AVG(budgetmin+budgetmax): '. $fooElement->{'AVG(budgetmin+budgetmax)'} .'<br />');
    echo('VALUE: '. $fooElement->{'VALUE'} .'<br />');
}

<强>输出:

MIN(budgetMin):2
MAX(budgetMax):25
AVG(budgetmin + budgetmax):30
价值:员工

答案 3 :(得分:1)

 Try this code: 
 Change your sql query SELECT MIN(budgetmin) as column_name1, MAX(budgetmax) as column_name2 , AVG(budgetmin+budgetmax) as column_name3, VALUE
 Then
 <?php
 foreach($array_values as $values) { 
    echo $values->column_name1;
    echo $values->column_name2;
    echo $values->column_name3;
    echo $values->VALUE;
}
?>