Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP的数组中的子数组_Php_Arrays_Loops_Foreach_While Loop - Fatal编程技术网

使用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])

运算符
=
用于字符串。运算符
=
用于字符串。