如何使用PHP从多维数组中提取值
我正在使用Alpha Vantage API获取股票价格,我能够很容易地获取最新价格。但我想从五个条目中拿回价格 这是我正在使用的阵列的开始如何使用PHP从多维数组中提取值,php,arrays,api,Php,Arrays,Api,我正在使用Alpha Vantage API获取股票价格,我能够很容易地获取最新价格。但我想从五个条目中拿回价格 这是我正在使用的阵列的开始 { "Meta Data": { "1. Information": "Daily Prices (open, high, low, close) and Volumes", "2. Symbol": "IBM",
{
"Meta Data": {
"1. Information": "Daily Prices (open, high, low, close) and Volumes",
"2. Symbol": "IBM",
"3. Last Refreshed": "2021-02-22",
"4. Output Size": "Compact",
"5. Time Zone": "US/Eastern"
},
"Time Series (Daily)": {
"2021-02-22": {
"1. open": "118.5000",
"2. high": "121.1250",
"3. low": "118.4400",
"4. close": "120.8600",
"5. volume": "5838841"
},
"2021-02-19": {
"1. open": "120.7500",
"2. high": "120.7600",
"3. low": "118.3800",
"4. close": "118.9900",
"5. volume": "6578741"
},
这是我一直使用的笨拙代码
这是第一天
把它变成一段时间
休息七天(因为他们的交易所在周末关闭),并按照修改后的日期工作
$getstocksapi = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=".$stock[$x]."&outputsize=compact&apikey=mycode;
$currentprices = file_get_contents($getstocksapi);
$currentprices = json_decode($currentprices,true);
$dateToCheck =($currentprices['Meta Data']['3. Last Refreshed']);
$oldDateToCheck = strtotime($dateToCheck);
$oldDateToCheck = ($oldDateToCheck - 60 * 60 * 24 * 7);
$oldDateToCheck = date("Y-m-d", $oldDateToCheck);
$dayEnd[$x] = ($currentprices['Time Series (Daily)'][$dateToCheck]['4. close']);
$thenDayEnd[$x] = ($currentprices['Time Series (Daily)'][$oldDateToCheck]['4. close']);
是否有一种更优雅的方法,或许使用数组_切片,我可以得到最近的收盘价,然后是从五个条目向下的收盘价?从评论中,数字索引不起作用,因为它仍然没有数字索引。要重新编制索引,可以使用函数
array\u values()
然后,$timeserieday
将是同一个数组,但改为使用数字索引,您可以使用以下内容访问第5个索引
echo $timeSeriesDaily[4]['4. close'];
“时间序列(每日)”不是已经按降序排列了吗?然后你只需要得到前五个元素。是的,它们很整齐。你知道我如何简单地选择第五个吗?是的,第五个将有索引4,因此你可以使用索引$currentprices['Time Series(Daily)][4]['4.close']
$dateToCheck=($currentprices['Meta Data']['3.Last Refreshed'])$prevFithDay=日期('Y-m-d',标准时间('-5天',标准时间('dateToCheck));echo$currentprices['Time Series(Daily)][$prevFithDay]['4.close']代码>@AlivetoDie我想op指的是第五个条目,不是最后5天?
echo $timeSeriesDaily[4]['4. close'];