0

Hi all,

I have a multi-dimensional array. Using a for function, I would like to display the information inside the array. This means using a variable $i for the first index of the array, which I think is causing the problem.

I am getting the error message:
Undefined offset: 2 Note, that the number changes depending on the value of $i.

The code I am using is:

$created = $results[$i]['data'];

But I get the above error when I echo that information inside the for loop.

Is this because you can't use variables as indexes for arrays?

3
Contributors
6
Replies
25
Views
1 Year
Discussion Span
Last Post by James_43
0

If this is referring to the code in your other thread, do note that indices start at zero and not one. So check your for loop. If that's not it, provide some more code (including the loop) so we can see what happens with your variable $i.

0

Thanks. It is referring to the other thread I just posted. But actually I've just realised what I want to do hasn't worked.

My mistake in pulling the mySQL data (in my previous post) was I was using $statement->fetch(); instead of $statement->fetchAll();

Now I have an array: $results. Below is the first row of data so you can see what the array looks like:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [blog_id] => 1
                    [0] => 1
                    [title] => hello world
                    [1] => hello world
                    [post] => test
                    [2] => test
                    [date] => 2015-09-22 17:21:33
                    [3] => 2015-09-22 17:21:33
                    [modified] => 2015-09-22 17:31:33
                    [4] => 2015-09-22 17:31:33
                    [author_id] => 4
                    [5] => 4
                )

Now, I simply want to echo some of that data. My code for that is:

for ($i = 0; $i < 5; $i++)
{
    echo $results[$i]['title'];
    echo '<br>';
}

I am then getting 2 error messages. One is Undefined index: title (which is incorrect since you can see above that there IS an index called title.

Secondly, I get: Notice: Undefined offset: 1, which I get for each item in the array.

Any ideas?

1

Looks like you have an additional level here. Show more of the array. Also choose NUM or ASSOC. I don.t think you need both.

0

Here is the full array:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [blog_id] => 1
                    [0] => 1
                    [title] => hello world
                    [1] => hello world
                    [post] => Test
                    [2] => Test
                    [date] => 2015-09-22 17:21:33
                    [3] => 2015-09-22 17:21:33
                    [modified] => 2015-09-22 17:31:33
                    [4] => 2015-09-22 17:31:33
                    [author_id] => 4
                    [5] => 4
                )

            [1] => Array
                (
                    [blog_id] => 2
                    [0] => 2
                    [title] => hello world
                    [1] => hello world
                    [post] => Test
                    [2] => Test
                    [date] => 2015-09-22 17:21:33
                    [3] => 2015-09-22 17:21:33
                    [modified] => 2015-09-22 17:31:33
                    [4] => 2015-09-22 17:31:33
                    [author_id] => 4
                    [5] => 4
                )

            [2] => Array
                (
                    [blog_id] => 3
                    [0] => 3
                    [title] => hello world
                    [1] => hello world
                    [post] => Test
                    [2] => Test
                    [date] => 2015-09-22 17:21:33
                    [3] => 2015-09-22 17:21:33
                    [modified] => 2015-09-22 17:31:33
                    [4] => 2015-09-22 17:31:33
                    [author_id] => 4
                    [5] => 4
                )

            [3] => Array
                (
                    [blog_id] => 4
                    [0] => 4
                    [title] => hello world
                    [1] => hello world
                    [post] => Test
                    [2] => Test
                    [date] => 2015-09-22 17:21:33
                    [3] => 2015-09-22 17:21:33
                    [modified] => 2015-09-22 17:31:33
                    [4] => 2015-09-22 17:31:33
                    [author_id] => 4
                    [5] => 4
                )

        )

)

I had wondered about the numeric vs associative array. I'm guessing the mySQL query pulls both into the array, how do I specifiy one or the other?

1
for ($i = 0; $i < 5; $i++)
{
    echo $results[0][$i]['title']; // all items are somehow stored in item 0
    echo '<br>';
}

how do I specifiy one or the other

$result = $sth->fetch(PDO::FETCH_ASSOC);

See jkon's reply in your previous thread.

Edited by pritaeas

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.