PHP - Foreach(数组的数组)

时间:2009-10-02 14:19:46

标签: php foreach multidimensional-array

以下是一个例子:

for($i=1; $i < 10; $i++){
  $marray[] = array($name, $email, $password); // Lets just say for now, there is real
                                               // data for each online being input
}

foreach ($marray as $e){
   echo "Name: ". $e[0];
   echo "Email: ". $e[1];
}

我忘了提及: 这个脚本在我的服务器上运行良好。但是,当我在调用“Foreach”之前包含array_unique时,它不起作用,没有错误消息或任何其他内容。

5 个答案:

答案 0 :(得分:1)

对我来说很好:

$name = "Phill";
$email = "me@me.com";
$password = "p@ssw0rd";

for($i=1; $i < 10; $i++){
  $marray[] = array($name, $email, $password); 

}

foreach (array_unique($marray) as $e){
   echo "Name: ". $e[0]."<br />";
   echo "Email: ". $e[1]."<br />";
}

返回:

Name: Phill
Email: me@me.com

您使用的是哪个版本的PHP?

答案 1 :(得分:0)

我会检查两个服务器都安装了哪个版本的PHP。你可以用phpinfo()做到这一点。我想不出它会在一台服务器上运行的任何其他原因,而不是另一台服务器。 “你不承认?”是什么意思?你收到任何错误信息吗?如果是这样,他们是什么?

答案 2 :(得分:0)

韦尔普,我自己想出了这个。我只是将初始文本设置为“爆炸”的问题,而不是让它更加混乱。

答案 3 :(得分:0)

正如在php文档中读到的那样:

  

注意:请注意,array_unique()不适用于多维数组。

(丑陋)修复“电子邮件+姓氏+电子邮件”是关键:

$uniqueUsers = array();
foreach ($users as $user) {
    $uniqueUsers[$user['name'] . $user['lastname'] . $user['email']] = $user;
}

我认为最好直接(如果可能)构建没有重复的数组。

答案 4 :(得分:0)

试试这个:

    $mstorage = array();
    foreach ($marray as $e){
    if(in_array($email, $mstorage) === FALSE) {
        echo "Name: ". $e[0]."<br />";
        echo "Email: ". $e[1]."<br />";
        array_push($mstorage, $email);
   }
}