Я хочу сделать 2d массив в php точно так же, как и в C, к которому можно получить доступ как mat [i] [j]. какой будет синтаксис?
Следующий код — это то, что я пытаюсь преобразовать из C в PHP:
mat[5][5];
for(i=0,i<5,i++)
for (j=0,j<5,j++) {
mat[i][j]=some value;
}
В отличие от C, в PHP вам не нужно определять размер массива, вам даже не нужно указывать PHP, что это массив. Поэтому будет работать следующий код:
for($i=0,$i<5,$i++) {
for ($j=0,$j<5,$j++) {
$mat[$i][$j]= "some value";
}
}
$matrix = array (
array(1,2,3),
array(4,5,6),
array(7,8,9)
);
Это массив 2 d, который составляет матрицу 3 * 3. $matrix[1][1]
вернется 5
На ваш вопрос
$mat = array();
for($i=0,$i<5,$i++)
for ($j=0$,$j<5,$j++) {
$mat[$i][$j]=some value;
}
Или исправить массив до определенного размера
$mat = new SplFixedArray(5);
for($i=0,$i<5,$i++){
$mat[$i] = new SplFixedArray(5);
for ($j=0$,$j<5,$j++) {
$mat[$i][$j]=some value;
}
}
Вы можете сделать это так:
$myArray = [[0,1,2],[3,4,5],[6,7,8]];
for($i=0,$i<count($myArray),$i++) {
for ($j=0,j<count($myArray[i]),j++) {
$mat[i][j]=some value;
}
}