Создание пустого 2D-массива в PHP?

Я знаю, что массивы создаются динамически, и их создание заблаговременно не обязательно, но как это сделать с 2D-массивом? Так же?

(for$j) { for($i) { $array[j][i] = "data"; } } 

Что-то вроде того? Разумеется, реальный для циклов, конечно.

Solutions Collecting From Web of "Создание пустого 2D-массива в PHP?"

При его абсолютном простейшем случае 2D-мерный массив может быть создан как:

 <?php $emptyArray = array(array()); ?> 

Или, как в PHP 5.4, вы также можете использовать:

 <?php $emptyArray = [[]]; ?> 

Вы не создаете 2d-массив в PHP, а не в традиционном смысле.

Предложения выше о $a = array(array()); фактически просто создавая следующий массив:

 $a = array( 0 => array( ) ); 

Следовательно, $a[0][0] = 'test'; приведет к следующему:

 $a = array( 0 => array( 0 => 'test' ) ); 

На первый взгляд, похоже, что это работает, но на самом деле это все еще не 2d-массив. Когда вы пытаетесь использовать 2-ю строку (индекс 1), в этот момент PHP выкинет уведомление. Например:

 $a[1][0] = 'test2'; 

Это связано с тем, что $a[1] ничего не содержит (помните, что array(array()) просто создает массив с индексом 0?).

Чтобы он работал, вам нужно еще раз сделать $a[1] = array(); , или если вы хотите избежать индексов, которые вы можете сделать, $a[] = array(); ,


пример

 $a = array(); // array of columns for($c=0; $c<5; $c++){ $a[$c] = array(); // array of cells for column $c for($r=0; $r<3; $r++){ $a[$c][$r] = rand(); } } 

Вышеприведенный код создает 5×3 "2d-массив" случайных чисел.

Документация PHP всегда является хорошим способом начать работу с такими основными вопросами.

 <?php $arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42)); echo $arr["somearray"][6]; // 5 echo $arr["somearray"][13]; // 9 echo $arr["somearray"]["a"]; // 42 ?> 

Если я хочу создать пустой массив для обработки строк из текстовых файлов, я просто использую $ array = array ();

Использование «array (array ())» создаст 2D-массив с «пустым» элементом в первой позиции. Чтобы создать по-настоящему пустой 2D-массив, его нужно удалить.

 <?php $emptyArray = array(array()); // Creates a 2D array with one empty element in $emptyArray[0] array_pop($emptyArray); // Pops element[0] off the array ?> 

Не могли бы вы указать, что вы пытаетесь сделать? Вы можете прокручивать многомерные массивы с помощью функции foreach

 $ary=array( "subarr" => array("foo","bar") ); foreach($ary as $a){ foreach($a as $ary_sub){ echo $ary_sub; } } 

или

 foreach($ary["subarr"] as $key=>$subval){ echo $subval; } 
 // dynamic 2D array $twoD = array(array()); $val = 0; // fill the array for($r = 0; $r < 4; $r++) { for($c = 0; $c < 4; $c++) $twoD[$r][$c] = $val++; } // print the current value of $val echo $val."<br/>------------------<br/>"; // print the array for($r = 0; $r < 4; $r++) { for($c = 0; $c < 4; $c++) echo $twoD[$r][$c]; echo "<br/>"; }