-1

I have simple function but got the error message : Notice: Undefined offset: 3 in

i checked the problem is in line : $newValue += $value[$i];

the answer of below function is "6" but error message still displayed.

<?php
function countMe($value) {

    $newValue = 0;

    for ($i=0; $i<=count($value); $i++) 
    {
        $newValue += $value[$i];
    }   
    return $newValue;
}   

$value[0] = 1;
$value[1] = 2;
$value[2] = 3;

echo countMe($value);
?>

I know the solution is just Suppress the error with the @ operator such as @countMe($value) but i want to know What's wrong with this function ?? Any help would be appreciated. Thanks

Harris
  • 77
  • 5

2 Answers2

2

Indexes are from 0 to 2... your function should count to count() - 1:

 for ($i=0; $i<=count($value)-1; $i++)

or

 for ($i=0; $i<count($value); $i++) 

By the way... just use array_sum($value) to get the same result :)

Flash Thunder
  • 11,672
  • 8
  • 47
  • 91
1

Please see that the value of count($value) is 3.

When you're mentioning <= in the loop, it's trying to access $value[3] but there's no such index available.

You could simply change it to <.

Another approach would be to use foreach instead. That provides more flexibility.

 for ($i = 0; $i< count($value); $i++) 

OR

foreach ($value as $v) {
   $newValue += $v;
}

Hope this helps.

Indrasis Datta
  • 8,692
  • 2
  • 14
  • 32