What does [1] => 0 mean in this array?

I know this should be a pretty simple question, but I haven't been able to stumble upon an answer yet.

I have the following array

$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;

      

When I use print_r ($ qid) I get the following

Array ( 
 [0] => Array ( [0] => 1 [1] => 0 ) 
 [1] => Array ( [0] => 2 ) 
 [2] => Array ( [0] => 3 ) 
 [3] => Array ( [0] => 4 )
) 

      

I don't understand [1] => 0

in

[0] => Array ( [0] => 1 [1] => 0 )

If anyone can explain what [1] => 0 means in this array, I would really appreciate it. Thank.

EDIT: It turns out my array was really different from what I wrote above, because it was changed later in the code. Thanks everyone for the great answers. I am still reading them all and trying to understand them (arrays jelly my mind).

+3


source to share


7 replies


[1] => 0

denotes an array element with a value 0

.

The number in []

is the keys of the array. So [1]

- this is the second element of the numerically indexed array (which starts with [0]

), and the value of the second element ( [1]

) is 0

.

PHP uses =>

both an operator to bind array keys / indices to their values.



So a general explanation of this structure:

Array ( 
 [0] => Array ( [0] => 1 [1] => 0 ) 
 [1] => Array ( [0] => 2 ) 
 [2] => Array ( [0] => 3 ) 
 [3] => Array ( [0] => 4 )
) 

      

The outer array is a numeric index array, and each of its elements is a submatrix. The first one ( [0]

) is an array containing 2 elements, and the rest ( [1] through [3]

) are arrays containing only one single element.

+4


source


This two dimensional array is actually a one dimensional array of arrays, so you end up with nesting. A bit [x] => y

simply means that the index of the x

array matters y

.

Now your output in this case doesn't actually match your code, since

$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;
print_r($qid);

      

gives:

Array (
    [0] => Array ( [0] => 1 )
    [1] => Array ( [0] => 2 )
    [2] => Array ( [0] => 3 )
    [3] => Array ( [0] => 4 )
) 

      



If you want to get:

Array ( 
    [0] => Array ( [0] => 1 [1] => 0 ) 
    [1] => Array ( [0] => 2 ) 
    [2] => Array ( [0] => 3 ) 
    [3] => Array ( [0] => 4 )
)

      

(with the first array having two elements) you really need:

$qid[0][0]=1;
$qid[0][1]=0;

$qid[1][0]=2;

$qid[2][0]=3;

$qid[3][0]=4;

print_r($qid);

      

+3


source


You've probably added the second item to $ qid [0] somewhere ($ qid [0] [1] = 0). This code

$qid[0][0]=1;
$qid[1][0]=2;
$qid[2][0]=3;
$qid[3][0]=4;

      

outputs the correct values ​​for me (without [1] => 0:

Array ( [0] => Array ( [0] => 1 ) [1] => Array ( [0] => 2 ) [2] => Array ( [0] => 3 ) [3] => Array ( [0] => 4 ) ) 

      

+2


source


This means that your index 0 in the original array contains another array of 2 elements.
In particular, it [1] => 0

means that the second element of the "child" array contains number 0.

+1


source


[1] => 0

      

in this simple way, you can say that 1 is your array and 0 is the value for key 1 0 is stored in 1 key of the array

thank

+1


source


Simply put, you have a numeric indexed multidimensional array. http://php.net/manual/en/language.types.array.php should have all the information you need to read.

As for why you have [1] => 0

, you need to dig a little deeper into your code to find out where it is assigned.

+1


source


I got the following result after printing the array using print_r:

Array
(
    [0] => Array
    (
        [0] => 1
    )

    [1] => Array
    (
        [0] => 2
    )

    [2] => Array
    (
        [0] => 3
    )

    [3] => Array
    (
        [0] => 4
    )

)

      

I think you could set a value for $ gid [0] [1] somewhere in your code.

+1


source







All Articles