PHP - Foreach (bir Array Array)

5 Cevap php

İşte bir örnek:

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

I forgot to mention: This script works fine on both my servers. But, When I include array_unique before "Foreach" is called, it doesn't work, no error message or anything.

5 Cevap

Benim için çalışıyor:

$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 />";
}

Bu döndürülür:

Name: Phill
Email: me@me.com

PHP hangi sürümü kullanıyorsunuz?

Ben de sunucuları yüklü PHP sürümünü kontrol. Eğer phpinfo () ile yapabilirsiniz. Ben tek bir sunucu üzerinde çalışacak başka bir nedenle düşünüyorum, ama başka olamaz. Sen ne demek istiyorsun 'tanımıyor?' Eğer herhangi bir hata mesajı alıyorum? Eğer öyleyse, bunlar nelerdir?

Welp, kendime bu bir anladım. Bunun yerine daha kafa karıştırıcı yapma, ben sadece bir "patladı" konuda başlangıç ​​metni ayarlayın.

Php belgelere okumak gibi:

Not: () çok boyutlu dizilerle çalışmak üzere tasarlanmamıştır array_unique.

"E-posta + soyad + e-posta" anahtarı ise (Çirkin) fix:

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

Ben (eğer mümkünse) çoğaltır olmadan doğrudan diziyi oluşturmak için daha iyi olduğunu düşünüyorum.

Bunu dene:

    $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);
   }
}