MillerMedia
MillerMedia

Reputation: 3671

Push an associative row of elements into a 2d array

I'm new to arrays in PHP and am trying to wrap my mind around how to make a multidimensional associative array. I'd like the array to look like this when I use print_r:

Array ( [0] => Array ( [alert] => alert [email] => Test ) )

Instead I get this:

Array ( [0] => Array ( [alert] => Array ( [email] => Test ) ) )

The code I'm using is this:

$alert_array = array();

$alert_array[]["alert"]["email"] = "Test";

I thought trying something like this would work, but obviously my syntax is a bit off. I think I'm somewhat on the right track though?:

$alert_array[][["alert"]["email"]] = "Test";

Thank for your help (sorry if this is super basic, I couldn't find any questions that addressed this exactly)!

Upvotes: 13

Views: 75972

Answers (3)

The Pascal King
The Pascal King

Reputation: 35

All associative relationships:

$alert_array = ["alert"  => ["email"  => "test"],
                "act"    => ["phone"  => "data"],
                "report" => ["pager"  => "yes" ],
                "advise" => ["letter" => "no"  ] ];

Upvotes: -1

Sukumar
Sukumar

Reputation: 329

if you put an already existing Array inside a new Array using array function , then your result will be multi-dimensional array

    $alert_array = array();
    $alert_array[] = array('alert' => 'alert', 'email' => 'Test');
    print_r($alert_array);

    /* result will be
    Array ( [0] => Array ( [alert] => alert [email] => Test ) )
    */

In this case, result will be one-dimensional array

$alert_array = array();
while($variable = mysqli_fetch_assoc($something)) {
$alert_array[] = $variable;
}

please also refer array function

Upvotes: 2

Dejan Marjanović
Dejan Marjanović

Reputation: 19380

$alert_array = array();
$alert_array[] = array('alert' => 'alert', 'email' => 'Test');
...
var_dump($alert_array);

In your case you'd have to specify key like so:

$alert_array[$key]["alert"] = "alert";
$alert_array[$key]["email"] = "Test";

You'd have to have a loop with counter too.

If you're using PHP 5.4+ you could use short array syntax:

$alert_array = [];
$alert_array[] = ['alert' => 'alert', 'email' => 'Test'];

Upvotes: 33

Related Questions