php从一组对象中获取数据

时间:2017-10-01 21:03:55

标签: php arrays

我正在尝试使用一个返回变量$ historicalData的php函数,这是一个对象数组。变量的var_dump是:

private String getPath(Uri uri) {
        // just some safety built in
        if( uri == null ) {
            Toast.makeText(this, "Error problem with system", Toast.LENGTH_SHORT).show();
            return null;
        }
        String path = "No-Path-Found";
        // try to retrieve the image from the media store first
        // this will only work for images selected from gallery
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = getContentResolver().query(uri, projection, null, null, null);
        if(cursor.moveToFirst()){
            int column_index = cursor
                    .getColumnIndex(MediaStore.Images.Media.DATA);
            path = cursor.getString(column_index);
        }
            cursor.close();
            return path;
    }

如何从此对象数组中提取数据。例如打印"日期" &安培; "靠近"

更新:我使用了以下代码:     DIR。 ' /vendor/autoload.php' ;;

  [0]=>
  object(Scheb\YahooFinanceApi\Results\HistoricalData)#40 (7) {
    ["date":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    object(DateTime)#22 (3) {
      ["date"]=>
      string(26) "2017-09-28 00:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(3) "UTC"
    }
    ["open":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(153.889999)
    ["high":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(154.279999)
    ["low":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(152.699997)
    ["close":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(153.279999)
    ["adjClose":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(153.279999)
    ["volume":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    int(21958200)
  }
  [1]=>
  object(Scheb\YahooFinanceApi\Results\HistoricalData)#20 (7) {
    ["date":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    object(DateTime)#30 (3) {
      ["date"]=>
      string(26) "2017-09-29 00:00:00.000000"
      ["timezone_type"]=>
      int(3)
      ["timezone"]=>
      string(3) "UTC"
    }
    ["open":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(153.210007)
    ["high":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(154.130005)
    ["low":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(152)
    ["close":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(154.119995)
    ["adjClose":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    float(154.119995)
    ["volume":"Scheb\YahooFinanceApi\Results\HistoricalData":private]=>
    int(26299810)
  }
}

并收到以下错误消息:

PHP致命错误:无法在第14行的stack.php中使用Scheb \ YahooFinanceApi \ Results \ HistoricalData类型的对象

2 个答案:

答案 0 :(得分:0)

要调用PHP关联数组,您需要为所述数组定义一个变量。

例如;

$MyArray = array('name' => 'Levi','Date' => '10/1/2017','Day' => 'Sunday');

获取名称

echo $MyArray['name'];

或白天

echo $MyArray['Day'];

在您的情况下,您需要echo $MyArray[0]['date'];echo $MyArray[0]['close'];

答案 1 :(得分:0)

我从未弄清楚如何读取数组中的对象。但是,我发现这个code将递归地将数组内的对象转换为数组。我设法以这种方式提取数据。