Reputation: 3671
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
Reputation: 35
All associative relationships:
$alert_array = ["alert" => ["email" => "test"],
"act" => ["phone" => "data"],
"report" => ["pager" => "yes" ],
"advise" => ["letter" => "no" ] ];
Upvotes: -1
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
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