GenericUser
GenericUser

Reputation: 229

Creating two dimentional array in for-loop

I want to create an array in a for-loop so i can adjust the size ($i) of the array. I've tried this:

$array = array();
for($i = 1; $i <= 5; $i++) {
    array_push($array,
        $i => array(
            "id" => "",
            "option" => ""
        ) 
    );
}

But I get the following error:

Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW) in ...

I'v also tried to make it a string by doing $i."" on line 4 but that doesn't seem to work either. Does anyone know why?

Upvotes: 0

Views: 70

Answers (3)

Jim
Jim

Reputation: 22656

More idiomatic would be:

$array = array();
for($i = 1; $i <= 5; $i++) {
    $array[$i] = array(
                "id" => "",
                "option" => "") ;
}

However note that this will give you array indexes from 1-5. Arrays are usually indexed from 0:

$array = array();
for($i = 0; $i < 5; $i++) {
    $array[$i] = array(
                "id" => "",
                "option" => "") ;
}

But this can be done without specifying the key:

$array = array();
for($i = 1; $i <= 5; $i++) {
    $array[] = array(
                "id" => "",
                "option" => "") ;
}

Upvotes: 3

Dinistro
Dinistro

Reputation: 5730

try this:

$array = array();
for($i = 1; $i <= 5; $i++) {
    $array[$i] = array(
            "id" => "",
            "option" => ""
        );
}

Upvotes: 3

putvande
putvande

Reputation: 15213

Remove the $i =>

$array = array();
for($i = 1; $i <= 5; $i++) {
    array_push($array, array(
            "id" => "",
            "option" => ""
        ) 
    );
}

Upvotes: 1

Related Questions