如何在第三维不变时打印整个数组

时间:2016-06-11 14:49:49

标签: php arrays 3d

当一个索引是常量时,如何打印整个数组。

为了理解目的,我制作了这个数组

$actionF = array(
    "enemyHlth" =>  array(array()),
    "enemyBlts" =>  array(array())
);

带输入

3 2 1
1 2 3
3 2 1
1 2 3
3 2 1
1 2 3

数组结构应该存储在3D数组下的前三行 第三维只是一个恒定的“敌人健康”,而三维则是三维 第三维“Enemy Bullets”的数组相同。这两个3D数组都存储在一个名为ActionF

的数组中

现在当我尝试打印时

for($level=0;$level<$n;$level++){  
    $actionF["enemyHlth"] = array ( $level =>  fscanf($_fp,"%d\t%d\t%d\n")
                                    );            
}

for($bullets = 0;$bullets<$m; $bullets++){  
    $actionF["enemyBlts"] = array ( $bullets => fscanf($_fp,"%d\t%d\t%d\n")
                                    );           
}
print_r($actionF);

输出

3 2 1

我认为它正在打印上述I / P的最后一个指数。怎么做  一个二维数组,当第三维只是一个常数或者我还缺少其他东西吗?

1 个答案:

答案 0 :(得分:1)

我重写了你的代码,我觉得它的效果很好:

首先,输入:

$actionF = array(
        "enemyHlth" =>  array(),
        "enemyBlts" =>  array()
        );

for($level=0;$level<$n;$level++){

    $line = fgets($_fp);

    $processed = explode(" ", $line);

    if ($line != false) {
        $actionF["enemyHlth"][$level] = $processed;
    }

}

for($bullets = 0;$bullets<$m; $bullets++){  

    $line = fgets($_fp);

    $processed = explode(" ", $line);

    if ($line != false) {
         $actionF["enemyBlts"][$bullets] = $processed;           
    }
}

这是输出:

for($i=0;$i<$n;$i++){
    for($j=0;$j<$m;$j++){
        print $actionF["enemyHlth"][$i][$j];
    }
    print "\n";
}