【问题标题】:Multidimensional Associative Array (PHP)多维关联数组 (PHP)
【发布时间】:2013-09-10 00:01:54
【问题描述】:

我是 PHP 数组的新手,我正在努力思考如何制作多维关联数组。当我使用 print_r 时,我希望数组看起来像这样:

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";

感谢您的帮助(对不起,如果这是超级基本的,我找不到任何可以准确解决这个问题的问题)!

【问题讨论】:

  • 试试array_push
  • @elclanrs,我仍然不知道如何使用 array_push 推送“电子邮件”值或“警报”值?

标签: php arrays multidimensional-array


【解决方案1】:
$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'];

【讨论】:

  • 哇,完美。比我想象的要简单得多,我没有意识到它可以以如此基本的方式完成(我想多了)。谢谢! (顺便说一句,如果允许,我会在几分钟内接受你的回答)
  • @MxmastaMills 不客气,在这里问任何问题 :)
  • 另一个简单的问题,我希望用这种方法将新对象“推送”到数组中。我尝试使用 array_push($alert_array, 'alert' => 'alert', 'email' => 'Test');但这不起作用(我假设这是因为第二个逗号)。我基本上是在循环运行时尝试将对象添加到数组的末尾...
  • @MxmastaMills 你应该只在一次推送多个元素(数组)时使用array_push,否则$array[] = $value。如果您发布代码,我可能会更好地帮助您。您可以毫无问题地循环使用“我的答案”。
  • 好的,这是相当复杂的代码,所以我将它的简化版本放在一起并将其添加到上面(除非您希望我将其添加为新问题)。
【解决方案2】:

如果您使用 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-31
    • 2014-08-12
    • 2013-07-10
    相关资源
    最近更新 更多