POUZE NYNÍ: Získej až 80 % extra kreditů ZDARMA na náš interaktivní e-learning. Zjistit více.
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

Diskuze – Asociativní a vícerozměrná pole - Český PHP manuál

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Nejnovější komentáře jsou na konci poslední stránky.
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Odpovídá na Michal Šmahel
Otvorený Zdroj:24.7.2019 23:46

No v $priatelia sa nachádza dotaz- vrátí všechny jeho řádky jako pole asociativních polí ( $this->data['priate­lia']=$priate­lia;)

a foreach ($priatelia as $priatel )

výpiše riadky asociatívneho poľa $priatel['d'];

toto pole obsahuje dve hodnoty 4 a 5

a tie by som rad dal do poľa napr. $priatel[0]=4; a $priatel[1]=5;
alebo na hodnoty z asociatívneho poľa $priatel['d'] nejako odkazoval, ak je to možné, stačí také vysvetlenie?

Odpovědět
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Odpovídá na Otvorený Zdroj
Michal Šmahel:25.7.2019 1:41

Už to snad chápu. Na klíči 'd' bude vždy pole o 2 hodnotách nebo se počet hodnot může měnit?

Vstup je tedy například tento?

$pratele = [
        0 => [
                'jmeno' => "Petr",
                'd' => [4, 5]
        ],
        1 => [
                'jmeno' => "Marek",
                'd' => [1, 2]
        ]
];
Odpovědět
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Odpovídá na Michal Šmahel
Otvorený Zdroj:25.7.2019 21:03

Na klici 'd' bude viacero hodnot typu integer. napr.

foreach ($priatelia as $priatel )
{
$pole[]=$priatel['d'];
//vypise Array ( [0] => 4 ) Array ( [0] => 4 [1] => 5 )
print_r($pole);
}

Array ( [0] => 4 ) Array ( [0] => 4 [1] => 5 ) s týmto poľom sa dá pracovať, alebo dá sa odstranit Array ( [0] => 4 ) ?

Odpovědět
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Odpovídá na Otvorený Zdroj
Michal Šmahel:26.7.2019 1:53

No, pořád mi tu něco nehraje. Zkusíme to raději jinak. Opravdu víš, co chceš a jak to vlastně funguje? Jde o to, že když vypisuješ data v poli přes foreach, proběhne většinou několik iterací. V tvém případě právě 2 (v tom modelovém příkladu, který popisuješ).

// První výpis
$pole[0] = [4]; // Array ( [0] => 4 )

// Druhý výpis
$pole[1] = [4, 5]; // Array ( [0] => 4 [1] => 5 )

Zkus si cyklus upravit tak, aby zobrazoval i číslo výpisu:

$i = 0;
foreach(...) {
echo "{$++i}. průběh:";
//...
var_dump($pole);

Abych dozodpověděl otázku... S polem se dá vždy pracovat. Jen tady máš vypsaná 2 pole - na různých klíčích. Ještě to promysli, co opravdu chceš a jestli to dobře chápeš.

Odpovědět
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Otvorený Zdroj
Tvůrce
Avatar
Otvorený Zdroj:16.9.2019 0:37

Riešenie som našiel toto: chcem vlastne spracovať Mysql vystúp do poľa.

$i=1;
               foreach ($priatelia as $priatel)
  {

// Želané pole sa bude nachádzať až na poslednom indexe v $pole_priatelia...

$pole_priatelia[]=$priatel['meno'];

// čiže výsledne pole musím vytiahnuť z poslednej iterácie cyklu

// z Mysql vytiahnem počet výstupov, tým nájdem poslednú iteráciu cyklu

if($i==$pocet['pocet_priatelov'])

// a mám želané pole v poli $pole_priatelia napr. Array ( [0] => Peter[1] =>František )
 print_r( $pole_priatelia);

$i++;

 }

Ak pozná niekto jednoduchšie riešenie, môže poskytnúť...

Odpovědět
Ak existuje voľná energia, tak autorské právo sú dve smiešne slová..
Avatar
Milan Turyna
Tvůrce
Avatar
Milan Turyna:16.9.2019 10:34

Pokud chceš MySQL výstup do pole použil bych toto:

while($r=$sql->fetch()) {
$pole_priatelia[]= $r['meno'];
}

//nepochopil jsem k čemu by mělo sloužit to $i, ale pokud chceš tak si to teda přidej do tý podmínky, počet získáš $sql->rowCount();

print_r($pole_priatelia);
Nejnovější komentáře jsou na konci poslední stránky.
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 6 zpráv z 16.