Bạn không tạo ra một mảng 2ngày trong PHP, không phải trong ý nghĩa truyền thống.
Những đề nghị trên về $a = array(array());
trên thực tế chỉ đơn giản là tạo ra các mảng sau:
$a = array(
0 => array()
);
Do đó, $a[0][0] = 'test';
sẽ cho kết quả như sau:
$a = array(
0 => array(
0 => 'test'
)
);
Trong nháy mắt đầu tiên, có vẻ như nó hoạt động , nhưng trên thực tế, đây vẫn không phải là mảng 2d. Khi bạn cố gắng sử dụng hàng thứ 2 (chỉ mục 1), tại thời điểm này, PHP sẽ ném một thông báo. Ví dụ:
$a[1][0] = 'test2';
Điều này là do $a[1]
không chứa bất cứ điều gì (hãy nhớ rằng array(array())
chỉ đơn giản là tạo ra một mảng ở chỉ số 0?).
Để thiết bị hoạt động, bạn cần phải thực hiện lại $a[1] = array();
hoặc nếu bạn muốn tránh các chỉ mục bạn có thể thực hiện, $a[] = array();
.
Ví dụ
$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();
}
}
Đoạn mã trên tạo ra một 5x3 "mảng 2ngày" của số ngẫu nhiên.
mảng trống 2 chiều ... '$ array = array (array());' – JamesHalsall
Cách đó có vẻ chính xác, nếu bạn chắc chắn muốn điền mảng bằng chuỗi rỗng n * m lần. –
Tôi không biết thỏa thuận với các downvotes là gì. Tôi nhìn và không thể tìm thấy câu trả lời, vì vậy tôi hỏi nó. Xin lỗi vì đã cố gắng học cách sử dụng php. – Joshua