NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Update hodnoty v associativním array

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
MicBlack
Člen
Avatar
MicBlack:4.1.2018 14:01

Ahoj,

chtěl jsem se zeptat - jak řešíte situaci, když máte nějaké associativní pole v poli a chcete v něm updatovat hodnotu nějakého key? Typicky je to situace, když si to proměnné dotáhnu data z databáze.

Když jsem to zkoušel tímto způsobem, tak to nefunguje a nic to nepřepíše:

foreach ($list as $item) {
        $item['key_1'] = 'nova hodnota';
}

Když jsem to trochu poupravil a využil reference, tak to update proběhl. Ale přiznám se, že úplně nerozumím proč to v tomhle případě funguje.

foreach ($list as &$item) {
        $item['key_1'] = 'nova hodnota';
}

Uměl byste prosím někdo osvětlit, jak to funguje s referencemi? A jestli je tento způsob updatování hodnoty pro určité key OK?

Díky

 
Odpovědět
4.1.2018 14:01
Avatar
ConflictBoy
Člen
Avatar
Odpovídá na MicBlack
ConflictBoy:4.1.2018 14:38

Ta reference je vlastně odkaz na původní hodnotu a řešení, které si použil je nejenom správné, ale myslím že i rychlejší, než kdybys to řešil s nějakou pomocnou proměnnou.
Zkus si spustit tento příklad:

<?php
$original = 1;
$test = &$original;

$test++;

echo $test . "\n" . $original;

Z příkladu uvidíš, že hodnota $test i $original bude 2.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
4.1.2018 14:38
I'm programmer, I have no life :)
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 2 zpráv z 2.