PHP nasıl dinamik oturum değişkenleri echo mı?

3 Cevap php

Order Page: Bu sayfada, müşterilerin farklı yabancı dil ve diğer seçenekleri ile kartvizit siparişleri eklemek için seçebilirsiniz.

Kullanıcı bir ek kart eklemek için bir düğmeye tıkladığında, javascript form alanları bir dizi ekler ve sırayla onlara benzersiz bir isim Ben sadece, bu yüzden alanların her grup için adının sonunda bir sayaç değişkeni ekleme, nitelikleri vermek Ben birlikte ait biliyorum her form alanı sonunda farklı isimler ama aynı sayacı sayıda oturum değişkenleri benzersiz bir grup olarak kaydedebilirsiniz.

These are the session variables I am saving when the user submits the form to go to the next page:

  • $ _SESSION [Quantity1] = 500
  • $ _SESSION [Language1] = Korece
  • $ _SESSION [Quantity2] = 250
  • $ _SESSION [Language2] = Çince

Checkout Page: Bu sayfada, ben sipariş her farklı kart için bilgi yankı istiyorum.

Ben ödeme sayfasında oturum değişkeni sonunda aynı numara ile tüm oturum değişkenleri echo çalışıyorum. Şimdiye kadar tüm oturum değişkenleri echo için bir foreach döngü kullanarak, ama ben sadece 'adlarının sonunda, ya da '2', bir '1 adlarının sonunda birlikte olanları yankı çalışıyorum Birlikte, vb, ve grup onları.

Yani ideal, ben böyle bir şey istiyorum:

Order #1,
Quantity: 500,
Language on Card: Korean

Order #2,
Quantity: 250,
Language on Card: Chinese

Nasıl ödeme sayfasında bu dinamik oturum değişkenleri echo ve grup olabilir?

3 Cevap

Bunun yerine kaydederken oturumu yeniden yapılandırılması:

  • $ _SESSION [Sipariş] [1] [miktar] = 500
  • $ _SESSION [Sipariş] [1] [değiştir] = Korece
  • $ _SESSION [Sipariş] [2] [miktar] = 250
  • $ _SESSION [Sipariş] [2] [değiştir] = Çince

Eğer foreach() kullanabileceğiniz bu şekilde order temiz bir şekilde tüm almak için.

Neden böyle bir şekilde oturumda depolamak değil?

$_SESSION[orders] => array(
  [0]=>array(
     'quantity'=>1,
     'language'=>'Korean'
   ),
  [1]=>array(
    'quantity'=>2,
    'language'=>'Chinese'
   ),
)

Sonra ödeme sayfada yineleme basit olacak

Gruplandırma alanları nispeten kolaydır. Tüm bunlar aracılığıyla sadece döngü, sonu ve başka bir dizi gruplar onları da numarasını çekin.

$vars = array();
foreach ($_SESSION as $k => $v) {
  if (preg_match('!\d+$!', $k, $matches)) {
    $number = $matches[0];
    if (array_key_exists($number, $vars)) {
      $vars[$number][$k] = $v;
    } else {
      $vars[$number] = array($k => $v);
    }
  }
}
print_r($vars);

$vars ile onlara döngü görüntülemek ve yapmanız gerekenleri yapmak için. Eğer belirli bir sırayla isterseniz $vars sıralamak gerekebilir. Belirli bir sırayla alanları koymak için alt diziler sıralamak gerekebilir.