将变量名称分配给不起作用的数组

时间:2014-05-08 17:21:58

标签: php arrays for-loop multidimensional-array literals

我正在尝试在for循环中输出数组内容。当我使用数组的文字名称时,它可以工作。当我尝试使用分配给该名称的变量时,它会失败。我需要使用变量来允许页面根据用户的选择显示正确的内容。

保存为include的数组是以下形式的二维:

$newsArray2012 = array(
    array(string_a, string_b, stringc),
    array(string_a, string_b, stringc),
    array(string_a, string_b, stringc), etc.,
    );

for循环如下所示:

for ($row = 0; $row < 5; $row++) {
    echo "<p class='portrait'><a name='".$newsArray2012[$row][1]."'></a>\n
    <em>".$newsArray2012[$row][0]."</em></p>\n
    <img src='/Pictures/".$newsArray2012[$row][1]."' width='72' height='80' alt='' />\n";
    echo $newsArray2012[$row][2]."\n";
    }

有效。

我已经分配了$ newsCurrent = newsArray2012。当我在for循环中用$ newsCurrent替换$ newsArray2012时,我没有得到任何输出。在测试中,我发现print_r($$ newsCurrent)将转储整个数组,即使这很傻,我在for循环中尝试了$$版本,但它在那里不起作用。

我哪里出错?

1 个答案:

答案 0 :(得分:0)

好的,因为$$ newsCurrent使用print_r,但不是for循环,我认为PHP有​​一个问题。因为它允许在print_r中使用$$,所以我做了一个跳跃,它会接受重新分配,如下所示:

$pageBios = $$newsCurrent;

这确实奏效了。我将$ pageBios放在for循环中并取得了成功。我对它不满意因为$$格式不对 - 至少我从未见过它。因此,虽然由于截止日期我需要向前推进,但我真的想要清理它 - 所以请随时向我展示一种非愚蠢的方法。感谢。