在PHP For循环中获取未定义的偏移量

在PHP For循环中获取未定义的偏移量,php,arrays,Php,Arrays,这些就是我得到的错误 (!)注意:第35行C:\wamp64\www\searches.php中未定义的偏移量:1 调用堆栈 (!)注意:第35行C:\wamp64\www\searches.php中未定义的偏移量:2 (!)注意:第42行C:\wamp64\www\searches.php中未定义的偏移量:2 第35行是$totalSum=$totalSum+$amyernumbers[1][$x] 这是整个for循环的一部分 preg_match_all('/(\d)\s<span&g

这些就是我得到的错误

(!)注意:第35行C:\wamp64\www\searches.php中未定义的偏移量:1 调用堆栈

(!)注意:第35行C:\wamp64\www\searches.php中未定义的偏移量:2

(!)注意:第42行C:\wamp64\www\searches.php中未定义的偏移量:2

第35行是
$totalSum=$totalSum+$amyernumbers[1][$x]

这是整个for循环的一部分

preg_match_all('/(\d)\s<span>year/', $amItemYEAR, $amYearNumbers);
print_r($amYearNumbers);
if ($amYearNumbers) {
    $amYearNumbersLength = count($amYearNumbers);
    $totalSum = 0;
    for ($x = 0; $x <= $amYearNumbersLength ; $x++) {
        $totalSum = $totalSum + $amYearNumbers[1][$x];
    }
}
preg_match_all(“/(\d)\syear/”,$amItemYEAR,$amyernumbers);
打印(单位:欧元);
如果($个){
$amyernumberslength=计数($amyernumbers);
$totalSum=0;
对于($x=0;$x数组([0]=>8年)[1]=>数组([0]=>8))

我知道错误的确切原因,我只想将返回的所有数字相加

if($amyernumbers){
if ($amYearNumbers) {
    $amYearNumbersLength = count($amYearNumbers);
    $totalSum = 0;
    for ($x = 0; $x < $amYearNumbersLength ; $x++) {
        $totalSum += $amYearNumbers[$x][0];
    }
}
$amyernumberslength=计数($amyernumbers); $totalSum=0; 对于($x=0;$x<$AmyerNumber长度;$x++){ $totalSum+=$amyernumbers[$x][0]; } }
检查此项

if (count($amYearNumbers)) {
    $amYearNumbersLength = count($amYearNumbers[0]);
    $totalSum = 0;
    for ($x = 0; $x < $amYearNumbersLength ; $x++) {
        $totalSum = $totalSum + $amYearNumbers[0][$x];
    }
}
if(计数($amyernumbers)){
$amyernumberslength=计数($amyernumbers[0]);
$totalSum=0;
对于($x=0;$x<$AmyerNumber长度;$x++){
$totalSum=$totalSum+$amyernumbers[0][$x];
}
}

循环时计数不一样

count($amYearNumbers); =2??
// then your loop goes in $amyearnumbers[1] which is 1

//So either do: 
For ($x = 0; $x <= count($amYearNumbers[1]); $x++) {
Or keep the count above as you do now but do:
$amYearNumbersLength = count($amYearNumbers[1]);
计数($amyernumbers);=2??
//然后循环进入$amyernumbers[1],即1
//因此,你可以:

对于($x=0;$x为什么不在For循环中使用计数?不是说它应该解决问题,而是仍然?
对于($x=0;$x)不是所有的数据数组都是数字的,
8年
?好的,很酷。我仍然收到一个错误,即
注意:未定义的偏移量:第35行的1
echo$amyernumbers[1][0]。“--
它是否显示错误?尝试更改($x=0;$x<$amyernumberslength;$x++){
它可以工作!但是为什么它是
$totalSum=$totalSum=$amyernumbers[0][$x];
而不是
$totalSum=$totalSum+$amyernumbers[1][$x];
因为这里是
数组([0]=>8年)[0]=>
index为$amyernumbers[0]的第一个位置是固定的,不是$amyernumbers[1],而是,我不想要那些写着8年的,我只想要数字8,你可以通过或检查