我知道我的问题的标题可能令人困惑,但我不太清楚如何解释我正在努力简明扼要地做什么。
我正在尝试遍历CSV数组并将数据加载到具有不同名称的变量中。在下面的示例中,$foo_data
代替$MSFT_data
,$AAPL_data
,$FB_data
和$stocks
通过$stocks = array($msft, $aapl, $fb);
foreach ($stocks as $stock) {
$fh = fopen($stock, 'r');
$header = fgetcsv($fh);
$foo_data = array();
while ($line = fgetcsv($fh)) {
$foo_data[] = array_combine($header, $line);
}
fclose($fh);
}
数组。
{{1}}
如果您需要更多信息,请与我们联系。
答案 0 :(得分:2)
有两个问题。第一个是您无法获取变量名称,因此脚本无法知道有$msft
,$aapl
,$fb
,因此您需要将名称与数组。第二,你需要变量变量。
尝试
$stocks = array('MSFT' => $msft, 'AAPL' => $aapl, 'FB' => $fb);
foreach ($stocks as $key=>$stock) {
$fh = fopen($stock, 'r');
$header = fgetcsv($fh);
$varname = $key . '_data';
$$varname = array(); //the double $$ will set the var content as variable ($MSFT_data)
while ($line = fgetcsv($fh)) {
${$varname}[] = array_combine($header, $line);
//the {} are needed to let PHP know that $varname is the name of the variable and not $varname[].
}
fclose($fh);
}
答案 1 :(得分:0)
$MSFT_data = $foo_data[0];
$AAPL_data = $foo_data[1];
$FB_data = $foo_data[2];
这对你有什么用?