如何从自定义 public 函数中仅获取特定值
How to get only specific values out of an custom public function
函数是:
public function getData($symbol='', $stat='') {
if (is_array($this->symbol)) {
$symbol = implode("+", $this->symbol); //The Yahoo! API will take multiple symbols
}
if($symbol) $this->_setParam('symbol', $symbol);
if($stat) $this->_setParam('stat', $stat);
$data = $this->_request();
if(!$this->history) {
if ($this->stat === 'all') {
foreach ($data as $item) {
//Add to $return[$symbol] array. Indice 23 is the symbol.
$return[$item[23]] = array(
'name' => strip_tags($item[20]),
'price' => strip_tags($item[0]),
'change' => strip_tags($item[1]),
'volume' => strip_tags($item[2])
//'avg_daily_volume' => strip_tags($item[3]),
//'stock_exchange' => strip_tags($item[4]),
//'market_cap' => strip_tags($item[5]),
//'book_value' => strip_tags($item[6]),
//'ebitda' => strip_tags($item[7]),
//'dividend_per_share' => strip_tags($item[8]),
//'dividend_yield' => strip_tags($item[9]),
//'earnings_per_share' => strip_tags($item[10]),
//'fiftytwo_week_high' => strip_tags($item[11]),
//'fiftytwo_week_low' => strip_tags($item[12]),
//'fiftyday_moving_avg' => strip_tags($item[13]),
//'twohundredday_moving_avg' => strip_tags($item[14]),
//'price_earnings_ratio' => strip_tags($item[15]),
//'price_earnings_growth_ratio' => strip_tags($item[16]),
//'price_sales_ratio' => strip_tags($item[17]),
//'price_book_ratio' => strip_tags($item[18]),
//'short_ratio' => strip_tags($item[19]),
//'name' => strip_tags($item[20])
);
}
} else {
foreach ($data as $item)
$return[] = array($this->stat => $item);
}
} elseif(is_array($this->history)) {
$return = $data;
}
return $return;
}
在index.php上使用的是:
<?php $test3 = ($StockMarketAPI2->getData());
print_r($StockMarketAPI2->getData());
?>
输出是:
Array
(
[-0.12 - -0.15%] => Array
(
[name] => Alibaba Group Holding Limited A
[price] => 81.17
[change] => -0.12
[volume] => 17911579
)
[-0.10 - -0.20%] => Array
(
[name] => GoPro, Inc.
[price] => 49.98
[change] => -0.10
[volume] => 4560642
)
[+0.53 - +0.10%] => Array
(
[name] => Netflix, Inc.
[price] => 557.03
[change] => +0.53
[volume] => 1272298
)
)
但我唯一需要的是:
alibaba, 81 , -0.12, gopro, 49 ....等等...
所以,
我需要的不是某种树形...
|
| |
/\ \
喜欢目前的输出。但只有 1 行...
不是 ['s ] 的 ('s )' 数组的....或其他类似的符号...
我该怎么做?
是不是这样的:
print_r($StockMarketAPI2->getData([$item][0]));
尝试:
<?php $test3 = ($StockMarketAPI2->getData());
foreach($test3 as $t){
echo "New subarray!";
echo $t[name];
echo $t[price];
echo $t[change];
echo $t[volume];
}
?>
未测试
函数是:
public function getData($symbol='', $stat='') {
if (is_array($this->symbol)) {
$symbol = implode("+", $this->symbol); //The Yahoo! API will take multiple symbols
}
if($symbol) $this->_setParam('symbol', $symbol);
if($stat) $this->_setParam('stat', $stat);
$data = $this->_request();
if(!$this->history) {
if ($this->stat === 'all') {
foreach ($data as $item) {
//Add to $return[$symbol] array. Indice 23 is the symbol.
$return[$item[23]] = array(
'name' => strip_tags($item[20]),
'price' => strip_tags($item[0]),
'change' => strip_tags($item[1]),
'volume' => strip_tags($item[2])
//'avg_daily_volume' => strip_tags($item[3]),
//'stock_exchange' => strip_tags($item[4]),
//'market_cap' => strip_tags($item[5]),
//'book_value' => strip_tags($item[6]),
//'ebitda' => strip_tags($item[7]),
//'dividend_per_share' => strip_tags($item[8]),
//'dividend_yield' => strip_tags($item[9]),
//'earnings_per_share' => strip_tags($item[10]),
//'fiftytwo_week_high' => strip_tags($item[11]),
//'fiftytwo_week_low' => strip_tags($item[12]),
//'fiftyday_moving_avg' => strip_tags($item[13]),
//'twohundredday_moving_avg' => strip_tags($item[14]),
//'price_earnings_ratio' => strip_tags($item[15]),
//'price_earnings_growth_ratio' => strip_tags($item[16]),
//'price_sales_ratio' => strip_tags($item[17]),
//'price_book_ratio' => strip_tags($item[18]),
//'short_ratio' => strip_tags($item[19]),
//'name' => strip_tags($item[20])
);
}
} else {
foreach ($data as $item)
$return[] = array($this->stat => $item);
}
} elseif(is_array($this->history)) {
$return = $data;
}
return $return;
}
在index.php上使用的是:
<?php $test3 = ($StockMarketAPI2->getData());
print_r($StockMarketAPI2->getData());
?>
输出是:
Array
(
[-0.12 - -0.15%] => Array
(
[name] => Alibaba Group Holding Limited A
[price] => 81.17
[change] => -0.12
[volume] => 17911579
)
[-0.10 - -0.20%] => Array
(
[name] => GoPro, Inc.
[price] => 49.98
[change] => -0.10
[volume] => 4560642
)
[+0.53 - +0.10%] => Array
(
[name] => Netflix, Inc.
[price] => 557.03
[change] => +0.53
[volume] => 1272298
)
)
但我唯一需要的是:
alibaba, 81 , -0.12, gopro, 49 ....等等...
所以,
我需要的不是某种树形...
|
| | /\ \
喜欢目前的输出。但只有 1 行...
不是 ['s ] 的 ('s )' 数组的....或其他类似的符号...
我该怎么做?
是不是这样的:
print_r($StockMarketAPI2->getData([$item][0]));
尝试:
<?php $test3 = ($StockMarketAPI2->getData());
foreach($test3 as $t){
echo "New subarray!";
echo $t[name];
echo $t[price];
echo $t[change];
echo $t[volume];
}
?>
未测试