Cách dễ nhất để tạo ra một mảng 2D. Tôi đã hy vọng có thể làm điều gì đó tương tự như thế này:
declare int d[0..m, 0..n]
Hỏi ngày 28 tháng 11 năm 2009 lúc 0:20Nov 28, 2009 at 0:20
Bạn cũng có thể tạo một mảng kết hợp hoặc một mảng "bảng băm", bằng cách chỉ định chỉ mục của mảng.
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
Tương đương với
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:30Nov 28, 2009 at 0:30
AtliatliAtli
7.7852 Huy hiệu vàng29 Huy hiệu bạc42 Huy hiệu đồng2 gold badges29 silver badges42 bronze badges
3
Sau đây là tương đương và dẫn đến một mảng hai chiều:
$array = array[
array[0, 1, 2],
array[3, 4, 5],
];
hoặc
$array = array[];
$array[] = array[0, 1, 2];
$array[] = array[3, 4, 5];
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:23Nov 28, 2009 at 0:23
4
Chỉ cần tuyên bố? Bạn không cần phải. Chỉ cần đảm bảo biến tồn tại:
$d = array[];
Các mảng được thay đổi kích thước động và cố gắng viết bất cứ thứ gì vào phần tử không ngoại trừ tạo ra nó [và tạo toàn bộ mảng nếu cần]
$d[1][2] = 3;
Điều này là hợp lệ cho bất kỳ số lượng kích thước mà không có khai báo trước.
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:34Nov 28, 2009 at 0:34
KornelkornelKornel
95,6K33 Huy hiệu vàng215 Huy hiệu bạc301 Huy hiệu đồng33 gold badges215 silver badges301 bronze badges
3
Đầu tiên, PHP không có mảng đa chiều, nó có các mảng.
Thứ hai, bạn có thể viết một chức năng sẽ làm điều đó:
function declare[$m, $n, $value = 0] {
return array_fill[0, $m, array_fill[0, $n, $value]];
}
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:30Nov 28, 2009 at 0:30
Atliatlicletus
7.7852 Huy hiệu vàng29 Huy hiệu bạc42 Huy hiệu đồng163 gold badges903 silver badges940 bronze badges
4
Sau đây là tương đương và dẫn đến một mảng hai chiều:
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
9hoặc
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:23Nov 19, 2011 at 7:01
Chỉ cần tuyên bố? Bạn không cần phải. Chỉ cần đảm bảo biến tồn tại:Kingsolmn
Các mảng được thay đổi kích thước động và cố gắng viết bất cứ thứ gì vào phần tử không ngoại trừ tạo ra nó [và tạo toàn bộ mảng nếu cần]2 gold badges23 silver badges39 bronze badges
Điều này là hợp lệ cho bất kỳ số lượng kích thước mà không có khai báo trước.
$m_by_n_array = array_fill[0, $n, array_fill[0, $m, $value];
Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:34
KornelkornelNov 28, 2009 at 0:26
95,6K33 Huy hiệu vàng215 Huy hiệu bạc301 Huy hiệu đồngAmber
Đầu tiên, PHP không có mảng đa chiều, nó có các mảng.81 gold badges617 silver badges545 bronze badges
Thứ hai, bạn có thể viết một chức năng sẽ làm điều đó:
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
foreach [ $array as $groupid => $fields] {
echo "hi element ". $groupid . "\n";
echo ". name is ". $fields['name'] . "\n";
echo ". email is ". $fields['email'] . "\n";
$i = 0;
foreach [$fields as $field] {
echo ". field $i is ".$field . "\n";
$i++;
}
}
Outputs:
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
0cletuscletusMar 8, 2019 at 22:03
606K163 Huy hiệu vàng903 Huy hiệu bạc940 Huy hiệu Đồng
Đối với một loại giải pháp đơn giản, "điền khi bạn đi":
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
1Điều này sẽ giúp bạn có một mảng hai chiều giả linh hoạt có thể chứa $ foo [n] [n] trong đó n
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
2...etc...
Đã trả lời ngày 19 tháng 11 năm 2011 lúc 7:01
KingsolmnkingsolmnOct 13, 2014 at 20:34
1.8582 huy hiệu vàng23 Huy hiệu bạc39 Huy hiệu đồngRay
Hoặc cho các mảng lớn hơn, tất cả đều có cùng một giá trị:20 gold badges91 silver badges132 bronze badges
sẽ tạo một mảng
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
0 bằng $array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
1 với mọi thứ được đặt thành $array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
2.Đã trả lời ngày 28 tháng 11 năm 2009 lúc 0:26
AmberamberJul 12, 2015 at 7:40
user824232user824232user824232
490K81 Huy hiệu vàng617 Huy hiệu bạc545 Huy hiệu Đồng1 gold badge1 silver badge6 bronze badges
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
3Câu trả lời của Atli thực sự đã giúp tôi hiểu điều này. Dưới đây là một ví dụ về cách lặp lại thông qua một mảng hai chiều. Mẫu này cho thấy cách tìm các giá trị cho các tên đã biết của một mảng và cũng là một foreach nơi bạn chỉ đi qua tất cả các trường bạn tìm thấy ở đó. Tôi hi vọng nó giúp ích cho ai đó.
Đã trả lời ngày 8 tháng 3 năm 2019 lúc 22:03Theo như tôi biết, không có chức năng PHP được tích hợp để thực hiện việc này, bạn cần thực hiện nó thông qua một vòng lặp hoặc thông qua một phương thức tùy chỉnh gọi đệ quy đến một cái gì đó như Array_Fill đã được xử lý trong câu trả lời của @amber;
Tôi cho rằng bạn có nghĩa là đã tạo ra một mảng mảng trống nhưng được intialized. Ví dụ: bạn muốn có một kết quả cuối cùng như dưới đây của một mảng 3 mảng:
Điều này rất đơn giản để chỉ mã tay, nhưng đối với một mảng có kích thước tùy ý giống như một mảng gồm 3 mảng 3 mảng, nó bắt đầu trở nên phức tạp để khởi tạo trước khi sử dụng:2 gold badges27 silver badges33 bronze badges
Tôi nhận được sự thất vọng. Thật tuyệt khi có một cách dễ dàng để khai báo một mảng mảng khởi tạo bất kỳ độ sâu nào để sử dụng mà không cần kiểm tra hoặc ném lỗi.Jul 11, 2017 at 11:29
Đã trả lời ngày 13 tháng 10 năm 2014 lúc 20:34Deshal Kh
Ray ray1 silver badge12 bronze badges
1
39K20 Huy hiệu vàng91 Huy hiệu bạc132 Huy hiệu Đồng
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
5Và đối với tôi, lập luận về việc một mảng có nên thưa thớt hay không phụ thuộc vào bối cảnh.Dec 28, 2018 at 18:32
Ví dụ: nếu $ a [6] [9] không được điền là tương đương với $ a [6] [9] được điền ví dụ với "" hoặc 0.Oskar
Đã trả lời ngày 12 tháng 7 năm 2015 lúc 7:4031 silver badges37 bronze badges
831 Huy hiệu vàng1 Huy hiệu bạc6 Huy hiệu đồng
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
4Example:
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
5Để lặp lại một phần tử mảng duy nhất bạn nên viết:first array from the array.
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
7 will return the first item from the second array from the array.$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
4May 12,
2020 at 10:34
đầu ra sẽ là:
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
3$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
6Athena
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
73.1622 Huy hiệu vàng27 Huy hiệu bạc33 Huy hiệu ĐồngFeb 26, 2019 at 19:37
Đã trả lời ngày 11 tháng 7 năm 2017 lúc 11:29Minwork
Deshal Khdeshal Kh6 silver badges8 bronze badges
2551 Huy hiệu bạc12 Huy hiệu đồng
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
8Và tôi thích cách này:
$array = array[];
$array[0] = array[];
$array[0]['name'] = 'John Doe';
$array[0]['email'] = '';
$array[1] = array[];
$array[1]['name'] = 'Jane Doe';
$array[1]['email'] = '';
9
Đã trả lời ngày 28 tháng 12 năm 2018 lúc 18:32
Oskaroskar2 gold badges22 silver badges43 bronze badges
2.48431 Huy hiệu bạc37 Huy hiệu đồngApr 6, 2020 at 17:14
$array = array[
0 => array[
'name' => 'John Doe',
'email' => ''
],
1 => array[
'name' => 'Jane Doe',
'email' => ''
],
];
8Bạn cần phải khai báo một mảng trong một mảng khác.Aug 1 at 20:13