Autor Zpráva
WeeHool
Profil
Zdravím..
takže mám pole:
$produkt[$pocet] = array(
      'nazev' => $nazevorig,
      'popis' => $popisorig,
      'cena' => $sdph,
      'obrazek' => $image,
      'odkaz' => $goto,
      'obchod' => $id
    );
mám už to i pěkně seřazený:
if (isset($order))
      {
        foreach($produkt as $val)
        {
          $sortarray[] = $val[$order];
        }
      }
      array_multisort($sortarray,$produkt);
      foreach($produkt as $key => $val)
      {
        $nazev = $val['nazev'];
        $cena = $val['cena'];
        
        echo "$nazev $key $cena <br>";
      }
a teď tam mám třeba v názvu nástěnná světla, lustry, ... a já chci najít všechna nástěnná světla.. jak toho docílím??


předem děkuji za odpověď..
Darker
Profil
function search($name, $value,$data) {
  $matches = array();            //Pole vyhovujicich polozek
  if(!is_array($value))          //Moznych hodnot muze byt vicero
     $value=array($value);
  foreach($data as $item) {      //Prochazeni dat
     foreach($value as $v) {     //Prochazeni vyhovujicich hodnot
        if($v==$item[$name]) {    //Pokud hodnota polozky odpovida aktualni testovane hodnote
          $matches[]=$item;       //Vyhovuje!
          break;                  //Konec zkoumani polozky
        }
     }
  }
  return $matches;
}
WeeHool
Profil
tý jo.. díky za funkci.. zejtra se vrhnu na její začlenění do celýho skriptu.. jak tak na to koukám.. bude to sranda.. ale fakt moc díky..
WeeHool
Profil
takže průšvih..
řekněme, že mám tyhle dva produkty:

$produkt[] = array(
      'nazev' => "prvni",
      'popis' => "takovyto",
      'bezdph' => "dfsdfsd",
      'cena' => "sdfsdf",
      'obrazek' => "sdfsd",
      'odkaz' => "sdfsdf",
      'obchod' => "sdfsd",
      'shop' => "sdfsd",
      'class' => "sdfsd"
    );

$produkt[] = array(
      'nazev' => "druhy",
      'popis' => "sdfsdf",
      'bezdph' => "sdfsdf",
      'cena' => "sdfsdf",
      'obrazek' => "sdfsd",
      'odkaz' => "sdfsdf",
      'obchod' => "sdfsdf",
      'shop' => "sdfsdf",
      'class' => "sdfsdf"
    );

a chci najít v produkt s názvem prvni..
jak toho docílím??
Darker
Profil
WeeHool:
Koukám, že jsi do té funkce moc nepronikl:
print_R(search("nazev","prvni", $produkt));
Parametr 1 určuje kterou položku prohledávat.
Parametr 2 určuje jakou (jaké - lze předat pole: array("prvni","druhy")) hodnotu má funkce hledat
Parametr 3 je pole, ve kterém se bude hledat.
Skript výše vrátí:
Array
(
    [0] => Array
        (
            [nazev] => prvni
            [popis] => takovyto
            [bezdph] => dfsdfsd
            [cena] => sdfsdf
            [obrazek] => sdfsd
            [odkaz] => sdfsdf
            [obchod] => sdfsd
            [shop] => sdfsd
            [class] => sdfsd
        )

)
WeeHool
Profil
ä děláš si srandu?? to sem udělal jako první..


no.. trošku jinak :D díky..


hej ale problém.. když zadám do názvu třeba prvni divadlo a dám hledat prvni, tak to nenajde.. jak to udělat, aby to našlo i část??
Darker
Profil
WeeHool:
jak to udělat, aby to našlo i část??
Musíš tu funkci prozkoumat a vylepšit.
peta
Profil
Darker: ... o regularni vyraz do podminky :)
Keeehi
Profil
Tu funkci bych trochu upravil:
function search($name, $values, &$data) {
  $matches = array();            //Pole vyhovujicich polozek
  if(!is_array($values))          //Moznych hodnot muze byt vicero
    $values=array($values);
  foreach($data as $item) {      //Prochazeni dat
    if ( in_array($item[$name], $values) ) {
      $matches[]=$item;       //Vyhovuje!
    }
  }
  return $matches;
}
Peli
Profil *
Funkci jsem upravil takto, aby to vracelo i id nalezeného řádku...

function hledat_v_poli($name, $value,$data) {
  $matches = array();            //Pole vyhovujicich polozek
  if(!is_array($value))          //Moznych hodnot muze byt vicero
     $value=array($value);
  foreach($data as $key => $item) {      //Prochazeni dat
     foreach($value as $v) {     //Prochazeni vyhovujicich hodnot
        if($v==$item[$name]) {    //Pokud hodnota polozky odpovida aktualni testovane hodnote
          $matches[]=$item;       //Vyhovuje!
          $matches["cisloradku"]=$key;    //přidám hodnotu, na kterém řádku to bylo nalezeno       
          break;                  //Konec zkoumani polozky
        }
     }
  }
  return $matches;
}

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0