Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tablica, implode, explode
Forum PHP.pl > Forum > PHP
mokry
Mam taki oto problem i nie bardzo umiem sobie z nim poradzić :/
Przesyłam poprzez forma taką oto tablicę:

Kod
Array
(
    [zielony_S] => 0
    [zielony_M] => 0
    [zielony_L] => 0
    [zielony_XL] => 0
    [zielony_XXL] => 0
    [czerwony_S] => 0
    [czerwony_M] => 0
    [czerwony_L] => 0
    [czerwony_XL] => 0
    [czerwony_XXL] => 5
    [czarny_S] => 0
    [czarny_M] => 0
    [czarny_L] => 0
    [czarny_XL] => 0
    [czarny_XXL] => 7
    [MIX_S] => 0
    [MIX_M] => 0
    [MIX_L] => 0
    [MIX_XL] => 0
    [MIX_XXL] => 3
    [submit] => Dodaj do zamówienia
)


Za pomocą funckji:

  1. <?
  2. function implode_with_keys($glue, $array, $valwrap='')
  3.  {
  4.  foreach($array AS $key => $value) {
  5.  $ret[] = $key.":".$valwrap.$value.$valwrap;
  6.  }
  7.  return implode($glue, $ret);
  8.  }
  9. echo implode_with_keys("|", $_POST);
  10. ?>


przetwarzam ją na postać:

Kod
zielony_S:0|zielony_M:0|zielony_L:0|zielony_XL:0|zielony_XXL:0|czerwony_S:0|czerwony_M:0|czerwony_L:0|czerwony_XL:0|czerwony_XXL:5|czarny_S:0|czarny_M:0|czarny_L:0|czarny_XL:0|czarny_XXL:7|MIX_S:0|MIX_M:0|MIX_L:0|MIX_XL:0|MIX_XXL:3|submit:Dodaj do zamówienia


i zapisuję w bazie danych w takiej postaci....
Wszystko jest fajnie, ale muszę teraz to znowu przerobić na tablicę w takiej samej formie jak wejściowa...
No i nie umiem sobie z tym poradzić.
Mam:

  1. <?
  2. function Artybuty($str) {
  3. $artybut = explode('|', $str);
  4. $i=0;
  5. while ($i<count($artybut))
  6.  {
  7.  $wynik .= $artybut[$i].", ";
  8.  $i++;
  9.  }
  10. return array($wynik);
  11. }
  12. ?>


ale zwraca mi:
Kod
Array
(
    [0] => zielony_S:0, zielony_M:0, zielony_L:0, zielony_XL:0, zielony_XXL:0, czerwony_S:0, czerwony_M:0, czerwony_L:0, czerwony_XL:0, czerwony_XXL:5, czarny_S:0, czarny_M:0, czarny_L:0, czarny_XL:0, czarny_XXL:7, MIX_S:0, MIX_M:0, MIX_L:0, MIX_XL:0, MIX_XXL:3, submit:Dodaj do zamówienia,
)


A to nie jest taka sama tablica jak moja wejściowa :/
kszychu
serialize() unserialize()
mokry
Dobra, zrobiłem to tak:
  1. <?
  2. function Artybuty($str) {
  3. $artybut = explode('|', $str);
  4.  foreach($artybut AS $key => $value) {
  5.  $cos = explode(':', $value);
  6.  $ret[$cos[0]] .= $cos[1];
  7.  }
  8.  return $ret;
  9. }
  10. print_r(Artybuty($z_bazy));
  11.  
  12. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.