我知道數組是動態創建的,並且提前創建它們並不是真的必要,但是如何用2D數組來做到這一點?一樣的方法?在PHP中創建一個空的二維數組?
(for$j)
{
for($i)
{
$array[j][i] = "data";
}
}
這樣的事情?當然,循環顯然是真實的。
我知道數組是動態創建的,並且提前創建它們並不是真的必要,但是如何用2D數組來做到這一點?一樣的方法?在PHP中創建一個空的二維數組?
(for$j)
{
for($i)
{
$array[j][i] = "data";
}
}
這樣的事情?當然,循環顯然是真實的。
PHP documentation始終是開始這些基本問題的好方法。
<?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
?>
我查看了多維數組文檔,沒有創建空白文檔的示例。 – Joshua
你能指定你正試圖做什麼? 您可以通過與在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;
}
不創建一個PHP二維數組,而不是傳統意義上的多維數組循環。
上面其實簡單地創建以下數組約$a = array(array());
的建議:
$a = array(
0 => array()
);
因此,$a[0][0] = 'test';
會導致如下:
$a = array(
0 => array(
0 => 'test'
)
);
乍一看,它看起來像它的工作原理,但實際上,這仍然不是一個二維數組。 當您嘗試使用第二行(索引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 「二維數組」。
如果我想創建一個空數組來處理來自文本文件的行,我只需要使用$ array = array();
// 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/>";
}
使用「array(array())」將在第一個位置創建一個帶有「empty」元素的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
?>
謝謝你分享這個。我以爲我瘋了試圖找出我如何在[0]創建一個空白元素, – radleybobins
一個空的2維數組...'$陣列=陣列(陣列());' – JamesHalsall
這樣似乎是正確的,如果你確定要填充空字符串N * M個數組倍。 –
我不知道與downvotes交易是什麼。我看了又找不到答案,於是我問了一句。請原諒我嘗試學習如何使用php。 – Joshua