从函数外部的多维数组中回显变量

时间:2015-10-02 20:15:18

标签: function multidimensional-array echo

下面的代码适用于字符串值,但不适用于我尝试直接访问变量的情况。 正在访问的数据是http://webrates.truefx.com/rates/connect.html?f=html处的表格 我的代码剥离了标签并将其放在数组$ row0中 并将其置于一个功能中。但我无法理解。该问题简化了该功能。一旦我发现我做错了什么,我打算连接函数内部的一些变量。

$row0 = array(); 
include "scrape/simple_html_dom.php";
$url = "http://webrates.truefx.com/rates/connect.html?f=html";
$html = new simple_html_dom();
$html->load_file($url);
foreach ($html->find('tr') as $i => $row) {
    foreach ($row->find('td') as $j => $col) {
        $row0[$i][$j]= strip_tags($col);
    }
}

myArray($row0); //table stripped of tags

function myArray($arr) {
    $a = 'hello';         //$arr[0][0]; HELLO will come out but not the variable
    $b = $arr[1][0];
    $r[0] = $a;
    $r[1] = $b;
    //echo $r[1]; If the //'s are removed one can see the proper value here but not outside the function.
    return $r;
}

$arrayToEcho = myArray($arr);

echo $arrayToEcho[0]; // will echo "first"

我已经尝试了这里的所有建议:

http://stackoverflow.com/questions/3451906/multiple-returns-from-function
http://stackoverflow.com/questions/5692568/php-function-return-array

如果需要,请提出建议并提供更多信息。非常感谢您的观看。

1 个答案:

答案 0 :(得分:0)

你需要在你的循环中获得$ col的innertext。像这样:

$row0[$i][$j]= $col->innertext;

接下来是:

myArray($row0);

此调用将正确返回已解析的数组;尝试回应它,你会看到。但是当你这样做时:

$arrayToEcho = myArray($arr);

...您正在引用$ arr,它是函数myArr 中的局部变量(实际上是一个参数)。所以你可能意味着:

$arrayToEcho = myArray($row0);

希望这有帮助!

<强>更新

看,我告诉你调用函数时会发生什么:

function-call