试图从类中的多个函数调用数组

时间:2012-06-13 16:53:51

标签: php multidimensional-array

(在PHP中)这是我的问题,我想在我的类中初始化一个数组,让构造函数填充它,然后我可以在其他函数中使用数组的变量..当我在构造函数中回显我的数组时它完美地工作,但是当我尝试在另一个函数中回应它时,它给了我一些非常不同的东西。

class myProblem
{
    public $phaseArray;

    function myProblem()
    {
        $count1 = 0;
        $metaFile = fopen( 'MyFile.txt', 'r' ) or exit( "Unable to open file!" );
        while( !feof( $metaFile ) )
        {
            $this->phaseArray[0][$count1] = 0;
            $this->phaseArray[1][$count1] = fgets( $metaFile );
            echo $this->phaseArray[1][$count1], $count1, '</br>'; //this part displays well
            $count1++;
        }
        close( $metaFile );
    }

    function displayError()
    {
        foreach( $this->phaseArray as $key => $value )
        {
            echo $key, $value, '</br>'; //this part does not show up correctly
        }
        echo $this->phaseArray[0][2]; //this part does not show up correctly
        echo $this->phaseArray[1][1]; //this part does not show up correctly
    }
}

对于缩进感到抱歉,我无法让它工作。 正确的打印输出(来自构造函数);  0Apple  1Orange  3Pear  4Strawberry

但显示第二个功能; 0Array 1Array

0Array 0Array

对我做错了什么的任何想法?谢谢你的时间!

1 个答案:

答案 0 :(得分:1)

它的显示方式是正确的,您可以决定填写它的方式是否错误或者您是如何从中读取数据的

您正在创建一个包含2个维度的数组,其中第二个维度也是一个数组。因此,当您想要输出第二维的所有项时,将其循环通过另一个foreach:

foreach( $this->phaseArray as $key => $values ) {
  foreach( $values as $value ) {
    echo $key, $value, '</br>'; //this part show up correctly
  }
}

如果您想知道阵列的结构,可以使用以下方法轻松打印出来:

echo "<pre>";
var_dump( $aVar );
echo "</pre>";