Tôi đang tạo một mảng mới trong một vòng lặp.
for $i < $number_of_items
$data[$i] = $some_data;
PHP liên tục phàn nàn về phần bù vì đối với mỗi lần lặp, tôi thêm một chỉ mục mới cho mảng, điều này thật ngu ngốc.
Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
Có một số cách để xác định trước các mục số trong mảng để PHP sẽ không hiển thị thông báo này?
Nói cách khác, tôi có thể xác định trước kích thước của mảng theo cách tương tự như thế này không?
$myarray = array[$size_of_the_earray];
Đã hỏi ngày 22 tháng 3 năm 2011 lúc 0:39Mar 22, 2011 at 0:39
Reed Richardsreed RichardsReed Richards
3.9788 Huy hiệu vàng38 Huy hiệu bạc54 Huy hiệu đồng8 gold badges38 silver badges54 bronze badges
2
Không có cách nào để tạo ra một mảng có kích thước được xác định trước mà không cung cấp các giá trị cho các phần tử của mảng đó.
Cách tốt nhất để khởi tạo một mảng như thế là array_fill
. Cho đến nay thích hợp hơn các giải pháp Loop and-chèn khác nhau.
$my_array = array_fill[0, $size_of_the_array, $some_data];
Mỗi vị trí trong
Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
0 sẽ chứa Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
1.Số 0 đầu tiên trong array_fill
chỉ biểu thị chỉ mục từ nơi mảng cần được lấp đầy bằng giá trị.
Đã trả lời ngày 22 tháng 3 năm 2011 lúc 0:42Mar 22, 2011 at 0:42
9
Có khả năng có liên quan- Nếu bạn muốn khởi tạo và điền vào một mảng với một loạt các giá trị, hãy sử dụng hàm phạm vi của PHP [chờ ...]:
$a = range[1, 5]; // array[1,2,3,4,5]
$a = range[0, 10, 2]; // array[0,2,4,6,8,10]
Đã trả lời ngày 4 tháng 12 năm 2013 lúc 1:24Dec 4, 2013 at 1:24
MadbreaksmadbreaksMadbreaks
Phù hiệu vàng 18,5K755 Huy hiệu bạc70 Huy hiệu đồng7 gold badges55 silver badges70 bronze badges
Bạn không thể xác định trước một kích thước của một mảng trong PHP. Một cách tốt để đạt được mục tiêu của bạn là như sau:
// Create a new array.
$array = array[];
// Add an item while $i < yourWantedItemQuantity
for [$i = 0; $i < $number_of_items; $i++]
{
array_push[$array, $some_data];
//or $array[] = $some_data; for single items.
}
Lưu ý rằng việc sử dụng Array_fill [] nhanh hơn để điền vào một mảng:
$array = array_fill[0,$number_of_items, $some_data];
Nếu bạn muốn xác minh xem một giá trị đã được đặt ở một chỉ mục, bạn nên sử dụng các mục sau: mảng_key_exists ["khóa", $ mảng] hoặc isset [$ mảng ["key"]]
Xem Array_Key_Exists, ISSET và Array_Fill
Đã trả lời ngày 22 tháng 3 năm 2011 lúc 0:42Mar 22, 2011 at 0:42
1
Có khả năng có liên quan- Nếu bạn muốn khởi tạo và điền vào một mảng với một loạt các giá trị, hãy sử dụng hàm phạm vi của PHP [chờ ...]:
Đã trả lời ngày 4 tháng 12 năm 2013 lúc 1:24
Madbreaksmadbreaks
Phù hiệu vàng 18,5K755 Huy hiệu bạc70 Huy hiệu đồng
function isset_or[$array, $key, $default = NULL] {
return isset[$array[$key]] ? $array[$key] : $default;
}
Bạn không thể xác định trước một kích thước của một mảng trong PHP. Một cách tốt để đạt được mục tiêu của bạn là như sau:
Lưu ý rằng việc sử dụng Array_fill [] nhanh hơn để điền vào một mảng:
Nếu bạn muốn xác minh xem một giá trị đã được đặt ở một chỉ mục, bạn nên sử dụng các mục sau: mảng_key_exists ["khóa", $ mảng] hoặc isset [$ mảng ["key"]]
Xem Array_Key_Exists, ISSET và Array_Fill
Mảng PHP không cần phải được khai báo với kích thước.Mar 22, 2011 at 0:45
Một mảng trong PHP thực sự là một bản đồ được đặt hàngJacob
Bạn cũng không nên nhận được cảnh báo/thông báo bằng cách sử dụng mã như ví dụ bạn đã hiển thị. Thông báo phổ biến mà mọi người nhận được là "bù không xác định" khi đọc từ một mảng.1 gold badge22 silver badges29 bronze badges
3
Một cách để chống lại điều này là kiểm tra với
Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
3 hoặc Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
4 hoặc sử dụng một chức năng như:$data = array_pad[$data,$number_of_items,0];
Để bạn có thể tránh được mã lặp đi lặp lại.
Lưu ý:
Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
3 trả về sai nếu phần tử trong mảng là null, nhưng có mức tăng hiệu suất trên Notice: Undefined offset: 1 in include[] [line 23 of /...
Notice: Undefined offset: 1 in include[] [line 23 of /..
Notice: Undefined offset: 1 in include[] [line 23 of /..
4.Nếu bạn muốn chỉ định một mảng có kích thước vì lý do hiệu suất, hãy xem:2 gold badges31 silver badges42 bronze badges
Splfixedarray trong thư viện PHP tiêu chuẩn.Jun 23, 2014 at 18:51
Đã trả lời ngày 22 tháng 3 năm 2011 lúc 0:45Academia
Jacobjacob6 gold badges30 silver badges49 bronze badges
8.1831 Huy hiệu vàng22 Huy hiệu bạc29 Huy hiệu đồng
- Ngoài ra còn có Array_Pad. Bạn có thể sử dụng nó như thế này:
- Để khởi tạo với số không, các vị trí $ number_of_items của dữ liệu mảng $.
Localheinz
8.6472 Huy hiệu vàng31 Huy hiệu bạc42 Huy hiệu đồng
Đã trả lời ngày 23 tháng 6 năm 2014 lúc 18:51Jan 7, 2015 at 18:56