Bylo Nebylo - osobní stránky/forum

Místo pro tvorbu, co mě napadne bude zde, je to místo pro kousek mé práce na internetu
 
PříjemPříjem  PortálPortál  FAQFAQ  HledatHledat  RegistraceRegistrace  PřihlášeníPřihlášení    

Share | 
 

 Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP

Zobrazit předchozí téma Zobrazit následující téma Goto down 
AutorZpráva
Admin
Admin
avatar

Poèet pøíspìvkù : 121
Aktivita: (Points) : 313
Díky: (Reputation) : 0
Join date : 14. 06. 10
Age : 32
Location : kastier@qip.ru

PříspěvekPředmět: Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP   07.10.10 9:25

Budeme porovnávat proměnné a pole proměnných jako adresářovou strukturu na pevném disku počítače, protože tak se to dá nejlépe pochopit.
Pokud teda už chápete tu adresářovou strukturu na hardisku....!!!
Na harddisku jsou soubory to víme. A taky tam jsou adresáře, to víme.
V souboru je obrazně to co je nám k něčemu dobré, tedy celý počítač (svět).
V adresáři je soubor.
Počet adresářů a souborů je libovolný, obrazně neomezený a adresáři se také říká složka.
Harddisk se nějak jmenuje, říká se mu C, (D,E,F,G,H atd.), když je na něm soubor, který se jmenuje manželka.jpg, tak se ještě používá pojem cesta k souboru, aby se soubor dal v počítači najít. Takže tenhle soubor by měl cestu, tedy místo kde v počítači je, C:\manželka.jpg
A když máte více manželek, nebo pracujete s manželkami vašich kamarádů, tak jsou dvě možnosti jak poznat který soubor je který, protože dvě manželky na jednom harddisku mít nelze. Buď změníte jméno souboru, nebo změníte místo kde ho lze nalézt (cesta k souboru).
To by se pak soubor mohl jmenovat, třeba karlova-manželka.jpg a už by jste měli na hardisku dva soubory (dvě manželky)

manželka.jpg
karlova-manželka.jpg

Nebo za pomoci změny umístění souboru, tak na hardisu vytvoříte adresář, v našem případě adresář Karlova-manželka a
to už by jste v počítači dvě manželky, dva soubory manželka.jpg mít mohli. Jeden na hardisku, tam by byla vaše manželka.jpg
A jeden v odkazu (adresáři) Karlova-manželka, kde by byla jeho manželka.jpg
pak by jste měli na hardisku soubor
manželka.jpg
a
\Karlova-manželka\manželka.jpg

počítač to označuje takto:

C:\manželka.jpg
C:\Karlova-manželka\manželka.jpg

--Ačkoliv je jméno souboru stejné, tak jeho obsah není stejný, nejsou to stejné manželky.
(To by se vaše manželka divila kdyby jste jí poslali věnování s fotkou a tam byla Karlova manželka....... Very Happy DDDDDDDDDDDD
I když je jméno souboru stejné, tak to není, nebo nemusí být stejný soubor
Jedinou omluvu,kterou by jste své ženě pak mohli dát je, že to byl stejný soubor (tedy jen stejný název souboru))

To rozpoznávání za pomocí adresářů (odkazů) doporučuju.
Pokud máte harddisk určený jen na manželky tak můžete pro unadnění změnit jméno adresáře, pak by to vypadalo

C:\manželka.jpg
C:\Karlova\manželka.jpg

Pokud chcete mít na hardisku i seznam s něčím jiným, třeba auta.
Tak aby to bylo přehlednější tak si na ně uděláme na harddisku odkaz (adresář) a tam vložíte auto své,a nebo svých kamarádů.
Pak by to vypadalo

C:\Auta\auto.jpg
C:\Auta\Karlovo\auto.jpg

takže když se pak podíváte na váš harddisk, tak tam uvidíte toto

<Auta>
<Karlova>
manželka.jpg

(To ve špičatých závorkách jsou jenom odkazy (adresáře-složky), nejsou to soubory, ale soubory v nich najdete.)
Pokud by jste to chtěli vidět i s výpisem pro cesty k souborům, tak


C:\Auta\auto.jpg

C:\Auta\Karlovo\auto.jpg

C:\Karlova\manželka.jpg

C:\manželka.jpg


Můžete do aut přidat i nabouraná auta, když máte to neštěstí... Vytvoříte složku Nabouraná(vesložce auta), a když už víte, že to jsou auta, tak jméno souboru pro nabouraná auta nemusíte nazvat auto.jpg, ale moje.jpg a nabouraná auta přátel nazvete jako nabourané. Pak by jste měli na hardisku tyto soubory:

C:\Auta\auto.jpg

C:\Auta\Karlovo\auto.jpg

C:\Auta\Nabouraná\moje.jpg

C:\Auta\Nabouraná\Karlovo\nabourané.jpg

C:\Karlova\manželka.jpg

C:\manželka.jpg

Počítač ale zobrazuje jako první soubory, které jsou v nejvíce adresářích, takže by vám to ukázal asi takto

C:\Auta\Nabouraná\Karlovo\nabourané.jpg

C:\Auta\Nabouraná\moje.jpg

C:\Auta\Karlovo\auto.jpg

C:\Auta\auto.jpg

C:\Karlova\manželka.jpg

C:\manželka.jpg

Teď je možná lákavé nepoužívat adresář Karlovo,který je v adresáři Nabouraná, ale Karlovo nabourané auto nazvat jako karlovo-nabourané.jpg a tak by v adresáři Nabouraná byly soubory
moje.jpg
karlovo.jpg

Záleží na vás jak si přejete.

Vzhledem k tomu,že jsme v počítači a pracujeme s obrázky, tak počítač poznává soubory, tedy že soubor je obrázek podle toho, že je ke jménu souboru přidaná přípona jpg a tečka se používá k rozeznání, jestli se v názvu souboru jedná o jeho jméno,nebo příponu. První je jméno souboru, pak je přípona. Pro nás by nebyl problém tu příponu nepoužívat, protože ji nepotřebujeme, ale počítač jí potřebuje. V proměnných ji používat nebudeme,možná jen malinko naznačím.

Když máte harddisk C a D a E tak to ještě neznamená, že máte tři železné krabičky v počítači,kterým se říká hardisk. (To je tedy harddisk skutečný) Klidně můžete mít jenom dva, nebo jeden Smile
Tak třeba v železném harddisku 1 máte harddisk C a D a v druhém železném E
1-C;D;
2-E;
V nich jsou pak soubory a adresáře
Ačkoliv by se jednalo o železný harddisk druhý, v počítači by na něm umístění souborů vypadalo jako obvykle, tedy
E:\muj-soubor
kdyby to měl byt soubor, do kterého by jste uložili nějaký text, tak by to vypadalo takto
E:\muj-soubor.txt
(txt je nejzákladnější přípona pro soubory s textem)

Tak pojďme na ty proměnné Smile

V PHP jsou proměnné, to víme. A taky tam je pole proměnných, to víme Smile
V proměnné je to co je nám k něčemu dobré, tedy svět. (Prostě něco s čím pracujeme.) V porovnání je to jako jeden železný harddisk a jsou v něm soubory a adresáře.
V poli proměnných je proměnná
Počet proměnných a polí proměnných je libovolný, spíše neomezený a v poli proměnných se adresáři říká index, nebo klíč.
Proměnná se nějak jmenuje,třeba C, (D,E,F,G,H atd.), v tomto případě by se jednalo o jméno železného harddisku, tak je lepší proměnnou pojmenovat $železný_hardisk, nežli $C !
Takže když bychom chtěli pojměnovat proměnnou $železný_harddisk jménem C (protože to je umístění pro soubory), tak by se proměnná jmenovala takto
$železný_harddisk[C]
A když je v této proměnné jméno, která který vypadá takto: manželka.jpg, tak se ještě používá pojem, obsah proměnné, tedy to je to co proměnná ve skutečnosti je. Takže potom by tato proměnná vypadalo takto

$železný_harddisk[C]="manželka.jpg"

Tato proměnná, kterou vidíte je text, protože obsahuje jenom text, nějaká písmena, řetězec se říká, a ten text musí být ohraničen dvojtými uvozovkami. Pokud ale s touto proměnnou chcete pracovat v PHP, což je taky účel, musí se použít středník na konci. Pak to vypadá:

$železný_harddisk[C]="manželka.jpg";

Pokud toto PHPovi napíšete, tak bude vědět, že se jedná o proměnnou, jejíchž obsahem je řetězec (text) manželka.jpg
A tenhle znak $ (napíšete ho pomocí alt-36) pro PHP znamená, že se jedná o proměnnou, v našem případě je to proměnná $železný_harddisk[C]

A když máte víc manželek, nebo pracujete s manželkami vašich kamarádů, tak jsou dvě možnosti jak poznat,která proměnná je která, protože dvě manželky v jedné proměnné mít nelze. Buď změníte jméno proměnné, nebo přidáte index. Za pomoci indexu je to lepší.
To v proměnné železný_harddisk vytvoříte index, v našem případě Karlova a v něm by byla jeho manželka.jpg
to by jste měli v proměnné manželku
"manželka.jpg"
a
[Karlova]="manželka.jpg"

V PHP to pak vypadá takto:

$železný_harddisk[C][]="manželka.jpg";
$železný_harddisk[C][Karlova]="manželka.jpg";

--Ačkoliv je obsah proměnné stejný, tak to nejsou stejné proměnné.

Takže manželka je na Céčku a Karlovo manželka je taky na Céčku, ale v Karlova.
Jenže! aby to tak mohlo být, musíme manželce naší přidat pozici (index)
Takže manželka je taky na Céčku, ale v [], takže v ničem, je to prázdné. Pro nás to znamená, že je prostě v Céčku, ale pro PHP to znamená, že je manželka v 0
To je oznažení pozice (indexu) Stejně tak jako je karlova manželka na Céčku pod indexem [Karlova], tak moje manželka na Céčku pod indexem [] (Ta nula bude doplněna automaticky, nedělejte si starosti, jen tam dejte prázdné hranaté závorky)
Skoro by se pak zdálo, že karlova manželka je v adresáři a moje manželka je v adresáři <0>
Je to tak, je to jako by v počítači nemohl být soubor přímo na C:\ , ale mohl by být jenom v adresáři. Tak když ho nechcete mít v adresáři, tak máte smůlu, ale ten adresář nepojmenujete,protože ho nechcete, tak dostane automatické jméno 0
zápis
$železný_harddisk[C][]="manželka.jpg";
tedy říká, že moje manželka je na disku C a není v žádném adresáři, je na disku C přímo.
PHP automaticky nastaví, že manželka je na disku C v adresáři 0

Pro vás to neznamená problém Smile Není to žádný zádrhel Smile
Potom jestli někdy budeme probírat smyčky, tak je to přímo naopak, díky prázdným adresářům lze za pomoci smyček s proměnnými pracovat zcela automaticky a tvořit tak slušné programy Smile

Pokud chcete mít v proměnné železný_harddisk i seznam s něčím jiným, třeba auta.
Tak aby to bylo přehlednější tak si v ní uděláme index a tam vložíte auto své,a nebo svých kamarádů.
Pak by to vypadalo

$železný_harddisk[C][Auta][]="auto.jpg";
$železný_harddisk[C][Auta][Karlovo]="auto.jpg";

Takže když se pak podíváte na vaši proměnnou, tak uvidíte toto:

[C][Auta][Karlovo]=>"auto.jpg"
[C][Auta][0]=>"auto.jpg"
[C][Karlova]=>"manželka.jpg"
[C][0]=>"manželka.jpg"

(To v hranatých závorkách jsou jenom identifikace (indexy) jako cesta k obsahu proměnné, není to obsah proměnné, ale dá se za pomoci toho obsah proměnné najít.)

Můžete do aut přidat i nabouraná auta, když máte to neštěstí... Vytvoříte index Nabouraná (v indexu auta), a když už víte, že to jsou auta, tak jméno obsahu proměnné pro nabouraná auta nemusíte nazvat auto.jpg, ale moje.jpg a nabouraná auta přátel nazvete jako nabourané. Pak by jste měli v proměnné tyto hodnoty (obsahy) :

[C][Auta][Nabouraná][Karlovo]=>"nabourané.jpg"
[C][Auta][Nabouraná][]=>"moje".jpg"
[C][Auta][Karlovo]=>"auto.jpg"
[C][Auta][]=>"auto.jpg"
[C][Karlova]=>"manželka.jpg"
[C][]=>"manželka.jpg"

Pokud by jste to chtěli vidět v detajlním výpisu, tak:
Array
(
    [C] => Array
        (
            [Auta] => Array
                (
                    [Nabouraná] => Array
                        (
                            [Karlovo] => nabourané.jpg
                            [0] => auto.jpg
                        )

                    [Karlovo] => auto.jpg
                    [0] => auto.jpg
                )

            [Karlova] => manželka.jpg
            [0] => manželka.jpg
        )

)
Pod C je Auta, pod nimi Nabouraná, pod nimi Karlovo, nabourané.jpg

V PHP lze změni způsob zobrazení tím, v jakém pořadí proměnné zadáváte. Teď jsem použil způsob zobrazení nejvyššího počtu indexů (Karlovo) a pod to jeho pod-index (0) a pod těmito dvěmi je taky pod-index Karlovo,,, a tak dále.
Někty je dobré nejdřív vidět jaké soubory jsou na harddisku a pak až adresáře a jejich soubory. Podle toho v jakém pořadí proměnné vytvoříte, tak podle toho se zobrazí. Takže pro takový způsob zobrazení proměnné, se musí vytvořit takto

$železný_harddisk[C][]="manželka.jpg";
$železný_harddisk[C][Karlova]="manželka.jpg";
$železný_harddisk[C][Auta][]="auto.jpg";
$železný_harddisk[C][Auta][Karlovo]="auto.jpg";
$železný_harddisk[C][Auta][Nabouraná][]="auto.jpg";
$železný_harddisk[C][Auta][Nabouraná][Karlovo]="nabourané.jpg";

a zobrazí se
Array
(
    [C] => Array
        (
            [0] => manželka.jpg
            [Karlova] => manželka.jpg
            [Auta] => Array
                (
                    [0] => auto.jpg
                    [Karlovo] => auto.jpg
                    [Nabouraná] => Array
                        (
                            [0] => auto.jpg
                            [Karlovo] => nabourané.jpg
                        )

                )

        )

)
Nedodržel jsem abecední seřazení, protože když mam na hardisku manželku, tak je důležitější vědět, že tam je ještě Karlova, nežli vědět, že tam jsou ještě auta. (vědět-vidět)


Teď je možná lákavé nepoužívat index Karlovo,který je v pod indexem Nabouraná, ale Karlovo nabourané auto nazvat jako karlovo_nabourané.jpg a tak by v indexu Nabouraná byly názvy
moje.jpg
karlovo.jpg

Záleží na vás jak si přejete.

Pak by vytvoření takové proměnné vypadalo takto:

$železný_harddisk[C][]="manželka.jpg";
$železný_harddisk[C][Karlova]="manželka.jpg";
$železný_harddisk[C][Auta][]="auto.jpg";
$železný_harddisk[C][Auta][Karlovo]="auto.jpg";
$železný_harddisk[C][Auta][Nabouraná][]="moje.jpg";
$železný_harddisk[C][Auta][Nabouraná][]="karlovo.jpg";

Karlovo nabourané tak bude pod indexem 1

Příkaz print_r ukazuje co je v poli proměnných, mi tedy máme takovouto proměnnou:
Array
(
    [C] => Array
        (
            [0] => manželka.jpg
            [Karlova] => manželka.jpg
            [Auta] => Array
                (
                    [0] => auto.jpg
                    [Karlovo] => auto.jpg
                    [Nabouraná] => Array
                        (
                            [0] => moje.jpg
                            [1] => karlovo.jpg
                        )

                )

        )

)
Existuje i další způsob jak takovouto proměnnou (pole proměnných) vytvořit
První způsob už jsme si ukázali a druhý je

$železný_harddisk[C]=array("manželka.jpg","Karlova"=>"manželka.jpg",
"Auta"=>array("auto.jpg","Karlovo"=>"auto.jpg","Nabouraná"=>array("moje.jpg","karlovo.jpg")
)//konec pro auta
);//konec pro Céčko

A aby jste lépe viděli Smile



Doplňovat a přejmenovávat pak můžete kdekoliv a nemusíte chodit do původního místa kde jste proměnnou tvořili.
Když si pak Karel koupí nové auto a taky ho nabourá,tak budete chtít přejmenovat jeho nabourané auto na staré_karlovo.jpg a přidat tam jeho nové_karlovo.jpg

To uděláte jako kdyby jste chtěli tvořit dvě nové proměnné
//Přejmenovat karlovo nabourané na staré_karlovo
$železný_harddisk[C][Auta][Nabouraná][1]="staré_karlovo.jpg";

Je důležité vědět, že karlovo.jpg má pozici 1 jinak by jste ho nemohli přejmenovat (0 už je obsazená autem mým)

//A přidat karlovo nové nabourané
$železný_harddisk[C][Auta][Nabouraná][]="nové_karlovo.jpg";

Proměnná bude tedy požadovaně upravena:
Array
(
    [C] => Array
        (
            [0] => manželka.jpg
            [Karlova] => manželka.jpg
            [Auta] => Array
                (
                    [0] => auto.jpg
                    [Karlovo] => auto.jpg
                    [Nabouraná] => Array
                        (
                            [0] => moje.jpg
                            [1] => staré_karlovo.jpg
                            [2] => nové_karlovo.jpg
                        )

                )

        )

)
Můžete ji ale požadovaně upravit též tam, kde jste ji poprvé tvořili.
Například nevím, jak z ní mazat za pomoci odděleného příkazu (který jsem předvedl) tak jedině bych z ní umazal to co bych tam nechtěl tam kde jsem ji tvořil, ale smazat to příkazem bych neuměl.

Za pomoci takového "odděleného příkazu" pak můžete pracovat s libovolnou proměnnou, kterou v proměnné máte.
Třeba ukáza na obrazovku karlovu manželku a pod ní karlovo nové nabourané auto

echo"$železný_harddisk[C][Karlova] <br>
$železný_harddisk[C][Auta][Nabouraná][2]";

Kdybych chtěl zobrazit moje nabourané auto, tak k tomu použiju pozici [0]


_________________
Není třeba se registrovat jestli chcete něco připsat nebo odpovědět
There's no need to register for posting one reply
Návrat nahoru Goto down
Zobrazit informace o autorovi http://bylonebylo.99k.org
Admin
Admin
avatar

Poèet pøíspìvkù : 121
Aktivita: (Points) : 313
Díky: (Reputation) : 0
Join date : 14. 06. 10
Age : 32
Location : kastier@qip.ru

PříspěvekPředmět: Re: Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP   07.10.10 9:47

54456

_________________
Není třeba se registrovat jestli chcete něco připsat nebo odpovědět
There's no need to register for posting one reply
Návrat nahoru Goto down
Zobrazit informace o autorovi http://bylonebylo.99k.org
asdff
Anonymní



PříspěvekPředmět: Re: Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP   21.10.10 5:02

Pro smazání obsahu z array i s odkazem (klíčem.indexem) je přikaz unset
Návrat nahoru Goto down
Sponsored content




PříspěvekPředmět: Re: Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP   

Návrat nahoru Goto down
 
Pochopení multi pole proměnných v PHP // Understanding multi arrays variables in PHP
Zobrazit předchozí téma Zobrazit následující téma Návrat nahoru 
Strana 1 z 1

Povolení tohoto fóra:Nemůžete odpovídat na témata v tomto fóru
Bylo Nebylo - osobní stránky/forum :: Rady // Advices-
Přejdi na: