Как напечатать весь массив, когда один индекс постоянен.
Для понимания я сделал этот массив
$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
Структура массива должна хранить первые три строки под трехмерным массивом с
3-е измерение — это просто постоянное «здоровье врага», а третье — в 3D
массив с таким же для 3-го измерения «Вражеские пули». И оба эти двух 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. Как сделать
2D массив, когда третье измерение — это просто константа или я что-то упускаю?
Я переписал ваш код и думаю, что он работает так:
Во-первых, вход:
$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";
}
Других решений пока нет …