2013-09-06 11 views
6

Я новичок в массивах в PHP и пытаюсь обдумать, как создать многомерный ассоциативный массив. Я хотел бы массив, чтобы посмотреть, как это, когда я использую print_r:Многомерный ассоциативный массив (PHP)

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

Вместо этого я получаю это:

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

код, я использую это:

$alert_array = array(); 

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

Я думал, что попытка что-то вроде этого будет работать, но, очевидно, мой синтаксис немного выключен. Я думаю, что я несколько на правильном пути, хотя ?:

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

Спасибо за вашу помощь (извините, если это супер основной, я не мог найти какие-либо вопросы, направленные на решение этого точно)!

+0

Попробуйте 'array_push'. – elclanrs

+0

@elclanrs, я до сих пор не знаю, как нажать только значение «email» или просто «alert» с помощью array_push? – MillerMedia

ответ

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

В вашем случае вы должны указать key так:

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

Вы должны были бы иметь цикл со счетчиком тоже.

Если вы используете PHP 5.4+ вы могли бы использовать короткий синтаксис массива:

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

О, ничего себе, отлично. Путь проще, чем я думал, я не понимал, что это можно сделать таким простым способом (я был слишком завышен). Благодаря! (Кстати, я отвечу на ваш ответ через пару минут, когда это разрешит) – MillerMedia

+0

@MxmastaMills приветствую вас, спросите что-нибудь, пока вы здесь :) –

+0

Еще один быстрый вопрос для вас, я ищу «толчок» нового объекты к массиву с помощью этого метода. Я попытался использовать array_push ($ alert_array, 'alert' => 'alert', 'email' => 'Test'); но это не сработало (я предполагаю, что это из-за второй запятой). Я в основном пытаюсь добавить объекты в конец массива, поскольку мой цикл работает ... – MillerMedia

0

если вы положили уже существующий массив в новый массив с помощью array function, то ваш результат будет многомерный массив

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

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

В этом случае результат будет одномерный массив

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

также обращайтесь к array function

Смежные вопросы