Avatar
motorovapila
Člen
Avatar
motorovapila:

Zdravim z databaze filtruji data, ktere ukladam do vice poli a nasledne zjistuji prunik vsech poli př:.

$a = array(34,58,76,9,995,100);
$b = array(34,74,76,7,44);
$c = array(34,78,55);
$d = array(34,58,44,25,69,78,105);
$e = array(34,78,55);

$prunik = array_intersect($a,$b,$c,$d,$e);

Problem nastava, když jedno z poli neni vubec naplněno př:.

$a = array(34,58,76,9,995,100);
$b = array(34,74,76,7,44);
$c = array(34,78,55);
$d = array(34,58,44,25,69,78,105);
$e = array();

$prunik = array_intersect($a,$b,$c,$d,$e);

Netušíte někdo jak vyřešit, pokud je pole $e = array(); prazdne, aby se zjistil prunik z $a,$b,$c,$d ??

diky moc za radu

 
Odpovědět 7.7.2014 17:35
Avatar
Ori
Člen
Avatar
Odpovídá na motorovapila
Ori:
$args = array();

$a = array(34,58,76,9,995,100);
$b = array(34,74,76,7,44);
$c = array(34,78,55);
$d = array(34,58,44,25,69,78,105);
$e = array();

if ( !empty($a) ) $args[] = &$a;
if ( !empty($b) ) $args[] = &$b;
if ( !empty($c) ) $args[] = &$c;
if ( !empty($d) ) $args[] = &$d;
if ( !empty($e) ) $args[] = &$e;

if ( count($args) == 1 ) {
  $prunik = $args[0];
} else {
  $prunik = call_user_func_array('array_intersect', $args);
}

Myslím, že hľadáš toto.

samozrejme, že tie ify by sa dali zautomatizovať ale to už záleží na tvojom skripte

Editováno 7.7.2014 17:51
 
Nahoru Odpovědět  +1 7.7.2014 17:50
Avatar
motorovapila
Člen
Avatar
Odpovídá na Ori
motorovapila:

Super, presne toto hledam diky moc

 
Nahoru Odpovědět 7.7.2014 18:16
Avatar
Ori
Člen
Avatar
Odpovídá na motorovapila
Ori:

zamálo, stačí len googliť. vždy sa nájde niekto, kto už ten problém vyriešil

 
Nahoru Odpovědět 7.7.2014 18:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.