2014-12-27 165 views
1

回归分析中我有一个像$data= $regression->getCoefficients();这样的变量。当我打印这我得到这个输出Php从数组中获取单个值

Regression\Matrix Object ([rows:protected] => 4 [columns:protected] => 1 [MainMatrix:protected] => Array ([0] => Array ([0] => -125) [1] => Array ([0] => 9.8888888888869) [2] => Array ([0] => 18.75) [3] => Array ([0] => -1.1388888888905)))

但我需要从数组单一值像Array[0]=>-125-125

预先感谢您

+1

看一看在你的回归\ Matrix类的方法....它甚至可以为你提供一个方法来获得你想要的值....但同时你$ data __contains__一个数组,它不是一个数组,而是一个对象 –

回答

0

你应该看看回归\矩阵方法正如Mark Ba​​ker在评论中所暗示的那样:应该有一些方法暴露受保护的MainMatrix成员。

如果没有任何...看起来像对象可以被类型化(关联)数组,并且受保护成员的前缀为chr(0).'*'.chr(0)(请参阅@ fardelian的评论here)。这将是相当反对回归\矩阵设计,但你可以写一个“曝光”:(你可以达到同样少哈克,但使用reflection更笨重的方式)

function getProtectedValue($obj,$name) { 
    $array = (array)$obj; 
    $prefix = chr(0).'*'.chr(0); 
    return $array[$prefix.$name]; 
} 

现在您可以访问您所需的值作为

$data = $regression->getCoefficients(); 
$MainMatrix = getProtectedValue($data,"MainMatrix"); 
echo $MainMatrix[0][0]; // -125 
+0

完美。这有用...非常感谢你,Jan ... – Sukumar