使用PHP的数组中的子数组
当我做以下事情时使用PHP的数组中的子数组,php,arrays,loops,foreach,while-loop,Php,Arrays,Loops,Foreach,While Loop,当我做以下事情时 $arr['exchange'] = array('to' => $to, 'rate' => $result[0]); 代码可以工作,但是只打印一次 当我这么做的时候 $arr['exchange'] .= array('to' => $to, 'rate' => $result[0]); 它打印出来了 {"from":"NZD","exchange":"ArrayArrayArrayArray"} 但正确的循环方式是什么,以便它可以在excha
$arr['exchange'] = array('to' => $to, 'rate' => $result[0]);
代码可以工作,但是只打印一次
当我这么做的时候
$arr['exchange'] .= array('to' => $to, 'rate' => $result[0]);
它打印出来了
{"from":"NZD","exchange":"ArrayArrayArrayArray"}
但正确的循环方式是什么,以便它可以在exchange阵列中设置6个子阵列
这是我的全部代码
<?php
$currencies = array("USD", "NZD", "KWD", "GBP", "AUD");
foreach ($currencies as $from)
{
$arr = array();
$arr['from'] = $from;
//$arr['exchange'] = array();
foreach ($currencies as $to)
{
if($from != $to)
{
$url = 'http://finance.yahoo.com/d/quotes.csv?f=l1d1t1&s='.$from.$to.'=X';
$handle = fopen($url, 'r');
if ($handle) {
$result = fgetcsv($handle);
fclose($handle);
}
$results = $result[1].$result[2];
$arr['exchange'] = array('to' => $to, 'rate' => $result[0]);
}
}
print json_encode($arr);
print"<br><br>";
}
?>
在PHP中将附加索引添加到数组时,可以使用方括号[]
例如,
$arr['exchange'][]=array('to'=>$to,'rate'=>$result[0])代码>在PHP中将附加索引添加到数组时,可以使用方括号[]
例如,$arr['exchange'][]=array('to'=>$to,'rate'=>$result[0])代码>您的代码存在一些问题,即您正在寻找要附加到数组中的[]
符号
第二,我明白你想用这个阵型做什么,但我不知道为什么。使用键来跟踪各种汇率交叉点似乎更容易创建如下所示的数组,这在以后的javascript方面也更容易管理
$currencies = array("USD", "NZD", "KWD", "GBP", "AUD");
$cross = array();
foreach ($currencies as $from) {
$cross[$from] = array();
foreach ($currencies as $to) {
if ($from != $to) {
$url = 'http://finance.yahoo.com/d/quotes.csv?f=l1d1t1&s=' . $from . $to . '=X';
$handle = fopen($url, 'r');
if ($handle) {
$result = fgetcsv($handle);
//echo "$from:$to - <br/>";
//var_dump($result);
fclose($handle);
$cross[$from][$to] = $result[0];
}
} else {
$cross[$from][$to] = 1;
}
}
print json_encode($cross);
print"<br><br>";
}
并且可以通过javascript访问它,如:
cross[from][to]
或
cross.NZD.USD
您的代码存在一些问题,即您正在寻找要附加到数组中的[]
符号
第二,我明白你想用这个阵型做什么,但我不知道为什么。使用键来跟踪各种汇率交叉点似乎更容易创建如下所示的数组,这在以后的javascript方面也更容易管理
$currencies = array("USD", "NZD", "KWD", "GBP", "AUD");
$cross = array();
foreach ($currencies as $from) {
$cross[$from] = array();
foreach ($currencies as $to) {
if ($from != $to) {
$url = 'http://finance.yahoo.com/d/quotes.csv?f=l1d1t1&s=' . $from . $to . '=X';
$handle = fopen($url, 'r');
if ($handle) {
$result = fgetcsv($handle);
//echo "$from:$to - <br/>";
//var_dump($result);
fclose($handle);
$cross[$from][$to] = $result[0];
}
} else {
$cross[$from][$to] = 1;
}
}
print json_encode($cross);
print"<br><br>";
}
并且可以通过javascript访问它,如:
cross[from][to]
或
cross.NZD.USD
在上面的代码片段中,您需要使用array\u push函数创建多维数组
例如数组推送($arr['exchange'],数组('to'=>$to,'rate'=>$result[0]) 在上面的代码片段中,您需要使用array\u push函数创建多维数组
例如数组推送($arr['exchange'],数组('to'=>$to,'rate'=>$result[0]) 运算符=
用于字符串。运算符=
用于字符串。