索引超出数组界限,该怎么解决

“/”应用程序中的服务器错误。
索引超出了数组界限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 索引超出了数组界限。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[IndexOutOfRangeException: 索引超出了数组界限。]
BoojobNet.Resume.Res_Resume_Update.lit_MyResume_ItemDataBound(Object OO10l1, DataListItemEventArgs O) +7388
System.Web.UI.WebControls.DataList.OnItemDataBound(DataListItemEventArgs e) +8684086
System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem) +137
System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource) +459
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e) +54
System.Web.UI.WebControls.BaseDataList.DataBind() +55
BoojobNet.Resume.Res_Resume_Update.O010l0l0Ol0OO01lO() +747
BoojobNet.Resume.Res_Resume_Update.Page_Load(Object O1101l, EventArgs O) +57
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627

版本信息: Microsoft .NET Framework 版本:2.0.

1、在test.php文件内,使用header设置test.php执行的编码为utf8,避免输出中文的时候出现乱码

2、在test.php文件内,创建一个测试的数组,例如,定义一个分类的数组,其对应的索引值分别为0,4,8。

3、在test.php文件内,使用array_values()方法将上一步的数据重新排序,并且从0开始,把重新排序的数组保存在$result变量中。

4、在test.php文件内,使用foreach方法遍历数组,其中$k为索引值,$v为索引值对应的数组值。

5、在test.php文件内,使用echo方法输出数组中的索引值和对应的数组值即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-22
限制索引取值范围(0到 (数组长度-1)),或者增加数组的长度

数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
数组是通过下表进行访问,但超出下标(索引)最大值(数组长度-1)就会访问超出界限
如:int [] arr= new int[2];;
arr[0]=1;

arr[1]=2;

--此数组长度为2,下标最大为1(数组下标从0开始)
--如果下标超出0-1这个范围就会出现索引超出界限问题。
--限制下标(索引)的取值范围,或者数组长度增加都可以防止索引超出界限
第2个回答  2018-06-21
限制索引取值范围(0到 (数组长度-1)),或者增加数组的长度

数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。
数组是通过下表进行访问,但超出下标(索引)最大值(数组长度-1)就会访问超出界限
如:int [] arr= new int[2];;
arr[0]=1;

arr[1]=2;

--此数组长度为2,下标最大为1(数组下标从0开始)
--如果下标超出0-1这个范围就会出现索引超出界限问题。
--限制下标(索引)的取值范围,或者数组长度增加都可以防止索引超出界限
相似回答