PHP - Foreach (Массив Массива) - PullRequest
0 голосов
/ 02 октября 2009

Вот пример:

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];
}

Я забыл упомянуть: Этот скрипт отлично работает на обоих моих серверах. Но когда я включаю array_unique перед вызовом «Foreach», он не работает, ни сообщения об ошибке, ни чего-либо еще.

Ответы [ 5 ]

1 голос
/ 05 октября 2009

отлично работает у меня:

$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 вы используете?

0 голосов
/ 08 октября 2012

Попробуйте это:

    $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);
   }
}
0 голосов
/ 05 октября 2009

Как читается в документации php:

Примечание: обратите внимание, что array_unique () не предназначена для работы с многомерными массивами.

(Ужасно) исправлено, если ключом является "email + фамилия + электронная почта":

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

Я думаю, что лучше построить (если возможно) массив без дубликатов.

0 голосов
/ 02 октября 2009

Уэлп, понял это сам. Вместо того, чтобы сделать это более запутанным, я просто установил исходный текст в «разобранном» виде.

0 голосов
/ 02 октября 2009

Я бы проверил, какая версия PHP установлена ​​на обоих серверах. Вы можете сделать это с помощью phpinfo (). Я не могу думать ни о какой другой причине, чтобы это работало на одном сервере, но не на другом. Что вы подразумеваете под «не признает?» вы получаете какие-либо сообщения об ошибках? Если да, то что они?

...