şeklinde gelen çok-boyutlu bir dizi sonrası

3 Cevap php

Ben çok boyutlu bir dizi duyurabilirsiniz nasıl bilmek istiyorum?

Temelde ben bir kullanıcıyı seçmek istiyorum ve seçilen kullanıcı e-posta ve isim yayınlamak gönderilir olacaktır.

Yani 100 kullanıcılar seçilerek, e-posta ve isim olacak. Ben aşağıdaki gibi PHP almak istiyorum

$_POST['users'] = array(
  array(name, email),
  array(name2, email2),
  array(name3, email3)
);

Herhangi bir fikir?

3 Cevap

Bu gibi form öğeleri adlandırabilirsiniz:

<input name="users[1][name]" />
<input name="users[1][email]" />
<input name="users[2][name]" />
<input name="users[2][email]" />
...

Siz anladınız ...

Here 'başka bir yolu: serialize dizisi, sonrası ve unserialize (isteğe bağlı şifreleyerek).

Ve burada benim için çalışan bir örnek:

"send.php":

<input type="hidden" name="var_array" value="<?php echo base64_encode(serialize($var_array)); ?>">

"receive.php":

if (isset($_POST['var_array'])) $var_array = unserialize(base64_decode($_POST['var_array']));

Bu iki dosya / oturumları arasında paylaşılan sanki o ile sadece $var_array kullanabilirsiniz. Elbette <form> bu send.php içinde olması gerekir, ama aynı zamanda bir sorgu dizesi olarak bir <a> üzerine gönderebilir.

Çok boyutlu diziler ile çalışırken bu yöntem büyük bir avantaja sahiptir.

Eh, bir yerde bazı loop yapmak zorunda olacak. Eğer (Franz anlaşılacağı gibi) bir dizin ile her bir form elemanı isim ise, PHP tarafında döngü yok.

Eğer loop yapmak için Javascript kullanmak istiyorsanız,) PHP geçmek için bir JSON dize oluşturmak (form onSubmit var. Sonra PHP şöyle onu almak var:

json_decode($_POST['users'], true);

İkinci argüman yerine anonim nesnelerin diziler yapmak için söyler.