NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - 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
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
24.7.2019 23:46
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
25.7.2019 1:41
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
25.7.2019 21:03
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
26.7.2019 1:53
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
16.9.2019 0:37
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);
Odpovědět
16.9.2019 10:34
Řeš pouze to, co dokážeš ovlivnit.
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.