0

I am looking for a way to add values to an array while I am looping through. This might sound a bit confusing but the following example will show what I want to do.

// Create a test array
$rows = range('a', 'z');

// Loop through the test array
foreach ($rows as $key => $row) {
    print $key . ': '.$row."\n";
    if (false === strpos($key, 'added') && $row == 'd') {
        // Add value to test array
        $rows['added_'.$key] = $row;
    }
}

Output

0: a
1: b
2: c
3: d
4: e
5: f
6: g
7: h
8: i
9: j
10: k
11: l
12: m
13: n
14: o
15: p
16: q
17: r
18: s
19: t
20: u
21: v
22: w
23: x
24: y
25: z

However, the foreach loop will not output the added values.

6
  • Works totally fine for me... print_r($rows) displays the data array Commented Oct 29, 2018 at 13:55
  • Are you expecting to see the output $key : $row where $row is the updated? Commented Oct 29, 2018 at 13:56
  • @HarveyFletcher Yes. I would like it to output ['added_'.$key] as well. Commented Oct 29, 2018 at 13:57
  • Last element of $rows: [added_3] => d ) Commented Oct 29, 2018 at 13:57
  • Move your print statement to be after your if(){} statement Commented Oct 29, 2018 at 13:58

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.