Elementtien lisääminen taulukkoon
Jos taulukko on olemassa, siihen voidaan lisätä lisäelementtejä. Tämä tehdään suoraan määritysoperaattorilla (yhtälöysmerkki) samalla tavalla kuin arvon määrittäminen merkkijonolle tai numerolle. Tässä tapauksessa sinun ei tarvitse määrittää lisätyn elementin avainta, mutta joka tapauksessa sinun on käytettävä taulukkoa hakasulkeet
. Kun lisäämme kaksi uutta elementtiä $Listiin, kirjoitamme:
$List = "päärynät";
$List = "tomaatit";
. Kun lisäämme kaksi uutta elementtiä $Listiin, kirjoitamme:
$List = "päärynät";
Jos avainta ei ole määritetty, jokainen elementti lisätään olemassa olevaan taulukkoon ja indeksoidaan seuraavalla järjestysnumerolla. Jos lisäämme uusia elementtejä taulukkoon edellisestä osiosta, jonka elementeillä oli indeksi 1, 2 ja 3, niin päärynöillä on indeksi 4 ja tomaateilla indeksi 5. Kun määrität eksplisiittisesti indeksin ja sen arvo on on jo olemassa, nykyinen arvo kyseisessä paikassa menetetään ja korvataan uudella:
Yritämme lisätä uusia elementtejä taulukkoon kirjoittamalla soups.php-skriptin uudelleen. Tulostamalla ensin taulukon alkuperäiset elementit ja sitten alkuperäiset yhdessä lisättyjen kanssa voimme helposti nähdä tapahtuneet muutokset.
Aivan kuten voit selvittää merkkijonon pituuden (sen sisältämien merkkien määrän) strlen()-funktiolla, on myös helppo määrittää taulukon elementtien määrä count()-funktiolla:
- $HowMany = count($Array); Avaa soups.php-tiedosto sisään.
- tekstieditori Kun olet alustanut taulukon array()-funktiolla, lisää seuraava merkintä:
- Funktio count() määrittää kuinka monta elementtiä on $Soups-taulukossa. Määrittämällä tämä arvo muuttujalle, se voidaan tulostaa. Lisää taulukkoon kolme lisäelementtiä.
- $Soups["Saturday"] = "Parsakaalikerma"; Laske taulukon elementit ja tulosta tämä arvo.
- \n");
$KuinkaMonen = count($keitot);
print("Matriisi sisältää $HowMany elementtejä.
\n");
$Soups["Thursday"] = "Kananuudeli";
$Soups["Friday"] = "Tomaatti";
$HowManyNow = count($keitot);
print("Matriisi sisältää nyt $HowManyNow-elementtejä.
Tallenna komentosarja (listaus 7.2), lataa se palvelimelle ja testaa sitä selaimessa (kuva).
1
2
3
4
5 Arrayiden käyttäminen
6 $keitot = array(
7 "Monday">"Simpukkajuustoa",
8 "Tuesday"=>"White Chicken Chili",
9 "Keskiviikko"=>"Kasvissyöjä");
11 print("Matriisi sisältää $HowMany
elementtejä.
\n");
12 $Soups["Thursday"] = "Kananuudeli";
13 $Soups["Friday"] = "Tomaatti";
14 $Soups["Saturday"] = "Kerma
Parsakaali";
15 $HowManyNow = määrä($keitot);
16 print("Matriisi sisältää nyt
elementtejä.
17 ?>
18
19
$HowManyNow elemente. Ilmestynyt PHP 4.0:ssa uusi ominaisuus
, jonka avulla voit lisätä yhden taulukon toiseen. Tätä toimintoa voidaan kutsua myös taulukoiden yhdistämiseksi tai ketjuttamiseksi. Ary_merge()-funktiota kutsutaan seuraavasti:
$UusiArray = array_merge($OneArray, $TwoArray);
Voit kirjoittaa soups.php-sivun uudelleen tällä toiminnolla, jos työskentelet palvelimella, johon on asennettu PHP 4.0.
- Kahden taulukon yhdistäminen
- Avaa soups.php-tiedosto tekstieditorissa, jos se ei ole jo auki. Kun olet alustanut taulukon array()-funktiolla, lisää seuraava merkintä:
- Yhdistä kaksi taulukkoa yhdeksi. $TheSoups = array_merge($Soups, $Soups2);
- Laske uuden taulukon elementit ja tulosta tulos. $HowMany3 = count($TheSoups);
- Sulje PHP ja HTML-dokumentti. ?>
- Tallenna tiedosto (listaus 7.3), lataa se palvelimelle ja testaa sitä selaimessa (kuva).
Kun olet alustanut $Soups-taulukon, laske sen elementit ja tulosta tulos.
print("Matriisi sisältää nyt $HowManyNow-elementtejä.
- print("$Soups-taulukko sisältää $HowMany elementtejä.
"Thursday">"Kananuudeli",
"Friday">"Tomaatti",
"Saturday"=>"Parsakaalikerma");
$KuinkaMonen2 = count($Soups2);
print("$Soups2-taulukko sisältää $HowMany2-elementtejä.
print("Matriisi sisältää nyt $HowManyNow-elementtejä.
Varmista, että taulukot on järjestetty tähän järjestykseen ($Soups, sitten $Soups2), eli torstain ja perjantain elementit tulee lisätä maanantain ja keskiviikon elementteihin, ei päinvastoin.
print("$TheSoups-taulukko sisältää
-$HowMany3 elementtiä.
print("Matriisi sisältää nyt $HowManyNow-elementtejä.
Listaus 7.3 Array_merge()-funktio on uusi. Tämä on yksi useista PHP 4.0:n lisätoiminnoista, jotka on suunniteltu toimimaan taulukoiden kanssa. Tauluja käyttämällä voit säästää paljon aikaa.
1
2
3
4
5 6 $ Keittoa = joukko!
7 "Monday">"Simpukkajuustoa",
"Tuesday">"White Chicken Chili",
8 "Keskiviikko"=>"Kasvissyöjä"
9);
10 $HowMany = määrä($keitot);
11 print("$Soups-taulukko sisältää $HowMany elementtejä.
elementtejä.
12 $Soups2 = array(
13 "Thursday">"Kananuudeli",
14 "Friday">"Tomaatti",
15 "lauantai"=>"Parsakaalikerma"
16); .
17 $KuinkaMonen2 = count($Soups2);
18 print ("$Soups2-taulukko sisältää $HowMany2-elementtejä.
elementtejä.
19 $TbeSoupe = array_merge ($Soups, $Soups2);
20 $HowMany3 = määrä ($TheSoups) ;
21 print ("$TheSoups-taulukko sisältää .$HowMany3 elementtiä.
elementtejä.
22 ?> "
23
24
Ole varovainen, kun lisäät elementtejä suoraan taulukkoon. Tämä tehdään oikein seuraavasti: $Ar ray = "Lisää tämä"; iyai$Aggau = "Lisää tämä";, mutta se on oikein näin: $Aggau = "Lisää tämä";. Jos unohdat laittaa sulut, lisäarvo tuhoaa olemassa olevan taulukon ja muuttaa sen yksinkertaiseksi merkkijonoksi tai numeroksi.
PHP 4.0 sisältää useita uusia toimintoja taulukoiden kanssa työskentelyyn. Niitä kaikkia ei kirjassa käsitellä. Täydelliset tiedot tästä aiheesta ovat kuitenkin PHP-kielioppaassa, joka löytyy PHP-verkkosivustolta. Varo käyttämästä uusia PHP 4.0:n ominaisuuksia, jos palvelimessasi on PHP 3.x.
PHP Tukee skalaari- ja komposiittitietotyyppejä. Tässä artikkelissa käsittelemme yhtä yhdistelmätyypeistä: taulukoita. Taulukko on kokoelma tietoarvoja, jotka on järjestetty järjestetyksi joukoksi avainarvopareja.
Tässä artikkelissa puhutaan taulukon luomisesta ja elementtien lisäämisestä taulukkoon. On monia sisäänrakennettuja toimintoja, jotka toimivat taulukoiden kanssa PHP koska taulukot ovat yleisiä ja hyödyllisiä käyttää. Jos esimerkiksi haluat lähettää sähköpostin useampaan kuin yhteen sähköpostiosoitteeseen, voit tallentaa sähköpostiosoitteet taulukkoon ja kiertää sitten taulukon läpi lähettämällä viestejä taulukosta otettuun sähköpostiosoitteeseen.
Indeksoidut ja assosiatiiviset taulukot
PHP:ssä on kahdenlaisia taulukoita: indeksi ja assosiaatio. Indeksoidun taulukon avaimet ovat kokonaislukuja, jotka alkavat 0:sta. Indeksoituja taulukoita käytetään, kun tarvitaan tietty sijainti taulukossa. Assosiatiiviset taulukot käyttäytyvät kuin taulukon kaksi saraketta. Ensimmäinen sarake on avain, jota käytetään arvon saamiseen (toinen sarake).
PHP tallentaa kaikki taulukot sisäisesti assosiatiivisina taulukoina, joten ainoa ero assosiatiivisten ja indeksoitujen taulukoiden välillä on, että avaimet näkyvät. Jotkin funktiot on tarkoitettu ensisijaisesti käytettäväksi indeksoiduissa taulukoissa, koska niissä oletetaan, että avaimesi ovat peräkkäisiä kokonaislukuja, jotka alkavat 0:sta. Molemmissa tapauksissa avaimet ovat ainutlaatuisia - eli et voi sisältää kahta elementtiä samalla avaimella riippumatta siitä, onko avain on merkkijono tai kokonaisluku.
IN PHP taulukoilla on elementtien sisäinen järjestys, joka on riippumaton avaimista ja arvoista, ja on toimintoja, joita voidaan käyttää taulukoiden läpikulkuun tämän sisäisen järjestyksen perusteella.
Elementtien määrittely taulukossa
Voit käyttää tiettyjä arvoja taulukosta käyttämällä taulukon nimeä ja elementtiavainta (joskus kutsutaan nimellä indeksi) hakasulkeissa:
$ikä["Fred"]; $shows;
Avain voi olla merkkijono tai kokonaisluku. Merkkijonoarvoja numeroina (ilman etunollia) käsitellään kokonaislukuina. Siten, $array Ja $array['3'] viittaavat samaan elementtiin, mutta $array['03'] viittaa toiseen elementtiin. Negatiivisia lukuja voidaan käyttää myös avaimina, mutta ne eivät määritä paikkoja taulukon lopusta, kuten Perl.
Avainta ei tarvitse kirjoittaa lainausmerkeissä. Esimerkiksi, $array['Fred'] pitää $arrat. Sitä pidetään kuitenkin hyvänä tyylinä PHP käytä aina lainausmerkkejä. Jos indeksi on ilman lainausmerkkejä, PHP käyttää vakion arvoa indeksinä:
Define("indeksi",5); echo $array; // palauttaa $array, ei $array["indeksi"];
Jos haluat korvata luvun hakemistossa, sinun on tehtävä tämä:
$ikä["Klooni$numero"]; // palauttaa, esimerkiksi $age["Clone5"];
Älä kuitenkaan lainaa avainta seuraavassa tapauksessa:
// virheellinen tulostus "Hei, $henkilö["nimi"]"; tulosta "Hei, $henkilö["nimi"]"; // oikea tuloste "Hei, $henkilö";
Tietojen tallentaminen taulukoihin
Kun yrität tallentaa arvon taulukkoon, taulukko luodaan automaattisesti, jos sitä ei ole aiemmin ollut, mutta kun yrität noutaa arvon taulukosta, jota ei ole määritetty, taulukkoa ei luoda. Esimerkiksi:
// $osoitteet ei ole määritelty toistaiseksi echo $addresses; // nothing echo $osoitteet; // ei mitään $osoitteet = "spam@cyberpromo.net"; echo $osoitteet; // tulosta "Array"
Voit käyttää yksinkertaista tehtävää taulukon alustamiseen ohjelmassa:
$osoitteet = "spam@cyberpromo.net"; $osoitteet = "väärinkäyttö@esimerkki.fi"; $osoitteet = "root@example.com"; //...
Ilmoitimme indeksitaulukon, jonka kokonaislukuindeksit alkavat 0:sta.
Assosiatiivinen matriisi:
$hinta["Tiiviste"] = 15,29; $hinta["Pyörä"] = 75,25; $hinta["Rengas"] = 50,00; //...
Yksinkertaisempi tapa alustaa taulukko on käyttää konstruktia Array(), joka rakentaa taulukon argumenteistaan:
$osoitteet = array("spam@cyberpromo.net", "abuse@example.com", "root@example.com");
Voit luoda assosiatiivisen taulukon käyttämällä Array(), käyttää => symboli, joka erottaa indeksit arvoista:
$hinta = array("Tiiviste" => 15,29, "Pyörä" => 75,25, "Rengas" => 50,00);
Kiinnitä huomiota tilojen käyttöön ja kohdistukseen. Voisimme ryhmitellä koodin, mutta se olisi vähemmän selkeä:
$hinta = array("Tiiviste"=>15.29,"Pyörä"=>75.25,"Rengas"=>50.00);
Tyhjän taulukon luomiseksi sinun on kutsuttava konstruktio Array() ilman argumentteja:
$osoitteet = Array();
Voit määrittää aloitusavaimen taulukossa ja sitten arvoluettelon. Arvot syötetään taulukkoon aloittaen avaimella ja kasvaen sitten:
$days = array(1 => "maanantai", "tiistai", "keskiviikko", "torstai", "perjantai", "lauantai", "sunnuntai"); // 2 on tiistai, 3 on keskiviikko jne.
Jos aloitusindeksi on merkkijono, seuraavista indekseistä tulee kokonaislukuja, jotka alkavat 0:sta. Joten seuraava koodi on todennäköisesti virhe:
$whoops = array("Friday" => "Musta", "Ruskea", "Vihreä"); // sama kuin $whoops = array("Friday" => "Musta", 0 => "Ruskea", 1 => "Vihreä");
Uuden elementin lisääminen taulukon loppuun
Jos haluat lisätä useita arvoja olemassa olevan indeksoidun taulukon loppuun, käytä syntaksia:
$perhe = array("Fred", "Wilma"); // $family = "Fred" $family = "Kivet"; // $family = "Pebbles"
Tämä konstruktio olettaa, että taulukon indeksit ovat numeroita ja antaa elementille seuraavan saatavilla olevan numeerisen indeksin alkaen 0:sta. Elementin lisääminen assosiatiiviseen taulukkoon on melkein aina ohjelmoijavirhe, mutta PHP lisää uusia elementtejä numeerisilla indekseillä (alkaen 0:sta) antamatta varoitusta:
$henkilö = array("nimi" => "Fred"); // $person["nimi"] = "Fred"; $henkilö = "Wilma"; // $henkilö = "Wilma"
Tässä vaiheessa lopetamme PHP:n taulukoiden kanssa työskentelyn johdanto-osan. Odotan näkevämme sinut seuraavassa artikkelissa.
array_pad
Lisää useita elementtejä taulukkoon.
Syntaksi:
Array array_pad(taulukon syöttö, int pad_size, sekoitettu pad_arvo)
Ary_pad()-funktio palauttaa kopion syötetaulukosta, johon on lisätty elementtejä, joissa on pad_arvot, joten tuloksena olevan taulukon elementtien määrä on pad_size.
Jos pad_size>0, elementit lisätään taulukon loppuun, ja jos<0 - то в начало.
Jos parametrin pad_size arvo on pienempi kuin alkuperäisen syöttötaulukon elementit, lisäystä ei tapahdu ja funktio palauttaa alkuperäisen syötetaulukon.
Esimerkki array_pad()-funktion käytöstä:
$arr = array(12, 10, 4);
$tulos = array_pad($arr, 5, 0);
// $tulos = array(12, 10, 4, 0, 0);
$tulos = array_pad($arr, -7, -1);
// $tulos = array(-1, -1, -1, -1, 12, 10, 4)
$tulos = array_pad($arr, 2, "noop");
// ei lisää
array_map
Käytä mukautettua funktiota määritettyjen taulukoiden kaikkiin elementteihin.
Syntaksi:
Array array_map(mixback callback, array arr1 [, array...])
Ary_map()-funktio palauttaa taulukon, joka sisältää kaikkien määritettyjen taulukoiden elementit käyttäjän takaisinkutsufunktion käsittelyn jälkeen.
Käyttäjän määrittämälle funktiolle välitettävien parametrien määrän on vastattava array_map(:lle) välitettyjen taulukoiden määrää.
Esimerkki array_map()-funktion käytöstä: Yhden taulukon käsittely
palauttaa $n*$n*$n;
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("kuutio", $a);
print_r($b);
?>
Array(
=> 1
=> 8
=> 27
=> 64
=> 125
)
Esimerkki array_map()-funktion käytöstä: Useiden taulukoiden käsittely
palauttaa "Numero $n espanjaksi on $m";
}
funktio map_espanja($n, $m) (
paluutaulukko ($n => $m);
}
$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");
$c = array_map("näytä_espanja", $a, $b);
print_r($c);
$d = array_map("kartta_espanja", $a , $b);
print_r($d);
?>
Annettu esimerkki tulostaa seuraavan:
// tuloste $cArray(
=> Numero 1 espanjaksi - uno
=> Numero 2 espanjaksi - dos
=> Numero 3 espanjaksi - tres
=> Numero 4 espanjaksi - cuatro
=> Numero 5 espanjaksi - cinco
)
// tuloste $dArray(
=> Joukko
=> uno
)
=> Joukko
=> dos
)
=> Joukko
=> tres
)
=> Joukko
=> cuatro
)
=> Joukko
=> cinco
)
Tyypillisesti array_map()-funktiota käytetään taulukoissa, jotka ovat samankokoisia. Jos taulukoilla on eripituisia, pienemmät täytetään elementeillä, joilla on tyhjiä arvoja.
On huomattava, että jos määrität nolla-arvon käsittelyfunktion nimen sijaan, luodaan taulukkotaulukko.
Esimerkki array_map()-funktion käytöstä: Taulujen taulukon luominen
$b = array("yksi", "kaksi", "kolme", "neljä", "viisi");
$c = array("uno", "dos", "tres", "cuatro", "cinco");
$d = array_map(null, $a, $b, $c);
print_r($d);
?>
Annettu esimerkki tulostaa seuraavan:
Array(
=> Joukko
=> 1
=> yksi
=> uno
)
=> Joukko
=> 2
=> kaksi
=> dos
)
=> Joukko
=> 3
=> kolme
=> tres
)
=> Joukko
=> 4
=> neljä
=> cuatro
)
=> Joukko
=> 5
=> viisi
=> cinco
)
PHP 4 >= 4.0.6, PHP 5 tukema toiminto
array_pop
Hakee ja poistaa taulukon viimeiset elementit.
Syntaksi:
Mixed array_pop(array arr);
Funktio array_pop() ponnahtaa viimeisen elementin taulukosta arr ja palauttaa sen poistaen sen jälkeenpäin. Tällä toiminnolla voimme rakentaa pinomaisia rakenteita. Jos taulukko arr oli tyhjä tai se ei ole jono, funktio palauttaa tyhjän merkkijonon NULL.
Ary_pop()-funktion käytön jälkeen taulukon kohdistin asetetaan alkuun.
Esimerkki array_pop()-funktion käytöstä:
$hedelmät = array_pop($pino);
print_r($pino);
print_r($hedelmät);
?>
Esimerkki tulostaa seuraavan:
Array(
=> oranssi
=> banaani
=> omena
)
PHP 4:n ja PHP 5:n tukema toiminto
array_push
Lisää yhden tai useamman elementin taulukon loppuun.
Syntaksi:
Int array_push(array, sekoitettu var1 [, sekoitettu var2, ..])
Funktio array_push() lisää elementit var1, var2 jne. taulukkoon arr. Se määrittää niille numeeriset indeksit - täsmälleen kuten tavalliselle.
Jos haluat lisätä vain yhden elementin, tämän operaattorin käyttäminen saattaa olla helpompaa:
Array_push($Arr,1000); // kutsuu funktiota $Arr=100; // sama asia, mutta lyhyempi
Esimerkki array_push()-funktion käytöstä:
array_push($pino, "omena", "vadelma");
print_r($pino);
?>
Esimerkki tulostaa seuraavan:
Array(
=> oranssi
=> banaani
=> omena
=> vadelma
)
Huomaa, että array_push()-funktio käsittelee taulukkoa pinona ja lisää aina elementit loppuun.
PHP 4:n ja PHP 5:n tukema toiminto
array_shift
Hakee ja poistaa taulukon ensimmäisen elementin.
Syntaksi:
Mixed array_shift(array arr)
Funktio array_shift() ottaa taulukon arr ensimmäisen elementin ja palauttaa sen. Se on hyvin samanlainen kuin array_pop(),
mutta se vastaanottaa vain alkuperäisen, ei lopullisen elementin, ja tuottaa myös melko voimakkaan "järistyksen" koko taulukosta: kunhan ensimmäistä elementtiä purat, sinun on säädettävä kaikkien jäljellä olevien elementtien kaikki numeeriset indeksit, koska kaikki seuraavat taulukon elementit siirretään yhden aseman eteenpäin. Merkkijonotaulukon avaimet eivät muutu.
Jos arr on tyhjä tai se ei ole taulukko, funktio palauttaa NULL-arvon.
Tämän toiminnon käytön jälkeen taulukon osoitin siirretään alkuun.
Esimerkki array_shift()-funktion käytöstä:
$hedelmä = array_shift($pino);
print_r($pino);
?>
Tämä esimerkki tulostaa seuraavan:
Array(
=> banaani
=> omena
=> vadelma
)
ja $fruit-muuttujan arvo on "oranssi"
PHP 4:n ja PHP 5:n tukema toiminto
array_unshift
Lisää yhden tai useamman arvon taulukon alkuun.
Syntaksi:
Int array_unshift(list arr, sekoitettu var1 [,mixed var2, ...])
Ary_unshift()-funktio lisää välitetyt var-arvot arr-taulukon alkuun. Uusien elementtien järjestys taulukossa säilyy. Kaikki taulukon digitaaliset indeksit muutetaan niin, että se alkaa nollasta. Kaikki taulukon merkkijonoindeksit ovat ennallaan.
Funktio palauttaa uuden määrän elementtejä taulukossa.
Esimerkki array_unshift()-funktion käytöstä:
array_unshift($jono, "omena", "vadelma");
?>
Nyt $queue-muuttuja sisältää seuraavat elementit:
Array(
=> omena
=> vadelma
=> oranssi
=> banaani
)
PHP 4:n ja PHP 5:n tukema toiminto
array_unique
Poistaa päällekkäiset arvot taulukosta.
Syntaksi:
Joukko array_unique(matriisijoukko)
Funktio array_unique() palauttaa taulukon, joka koostuu kaikista taulukon arr yksilöllisistä arvoista ja niiden avaimista poistamalla kaikki päällekkäiset arvot. Ensimmäiset löydetyt avain=>arvoparit sijoitetaan tuloksena olevaan taulukkoon. Indeksit säilytetään.
Esimerkki array_unique()-funktion käytöstä:
"vihreä", "punainen", "b" =>
"vihreä", "sininen", "punainen");
print_r($tulos);
?>
Esimerkki tulostaa seuraavan:
Array(
[a] => vihreä
=> punainen
=> sininen
)
Esimerkki array_unique()-funktion käytöstä: Tietotyyppien vertailu
$tulos = matriisi_ainutlaatuinen($syöte);
var_dump($tulos);
?>
Esimerkki tulostaa seuraavan:
Taulukko(2) (
=> int(4)
=> merkkijono(1) "3"
}
PHP 4 >= 4.0.1, PHP 5 tukema toiminto
array_chunk
Funktio jakaa taulukon osiin.
Syntaksi:
Array array_chunk(array arr, int size [, bool säilyttää_avaimet])
Funktio array_chunk() jakaa alkuperäisen taulukon arr useiksi taulukoiksi, joiden pituus määräytyy numerokoon mukaan. Jos alkuperäisen taulukon koko ei ole jaollinen tarkalleen osien koolla, niin lopullisen taulukon mitat ovat pienempiä.
Ary_chunk()-funktio palauttaa moniulotteisen taulukon, jonka indeksit alkavat 0:sta tuloksena olevien taulukoiden lukumäärään ja arvot ovat jakamisen tuloksena saatuja taulukoita.
Valinnainen säilytysavaimien parametri määrittää, tuleeko alkuperäisen taulukon avaimet säilyttää vai ei. Jos tämä parametri on epätosi (oletusarvo), tuloksena olevien taulukoiden indeksit määritetään numeroilla, jotka alkavat nollasta. Jos parametri on tosi, alkuperäisen taulukon avaimet säilyvät.
Esimerkki array_chunk()-funktion käytöstä:
$array = array("1st element",
"2. elementti"
"3. elementti"
"4. elementti"
"5. elementti");
print_r(array_chunk($array, 2));
print_r(array_chunk($array, 2, TRUE));
Esimerkki tulostaa seuraavan:
Array(
=> Joukko
=> 1. elementti
=> 2. elementti
)
=> Joukko
=> 3. elementti
=> 4. elementti
)
=> Joukko
=> 5. elementti
)
)
Array(
=> Joukko
=> 1. elementti
=> 2. elementti
)
=> Joukko
=> 3. elementti
=> 4. elementti
)
=> Joukko
=> 5. elementti
)
PHP 4 >= 4.2.0, PHP 5 tukema toiminto
array_fill
Funktio täyttää taulukon tietyillä arvoilla.
Syntaksi:
Array array_fill(int aloitusindeksi, int numero, sekoitettu arvo)
Ary_fill()-funktio palauttaa taulukon, joka sisältää arvoparametrissa koko num määritetyt arvot alkaen start_index-parametrissa määritetystä elementistä.
Esimerkki array_diff_uassoc() käytöstä:
print_r($a);
?>
Esimerkki tulostaa seuraavan:
Array(
=> banaani
=> banaani
=> banaani
=> banaani
=> banaani
=> banaani
)
PHP 4 >= 4.2.0, PHP 5 tukema toiminto
array_filter
Funktio käyttää suodatinta taulukkoon mukautetun funktion avulla.
Syntaksi:
Array array_filter(taulukkosyöttö [, takaisinsoitto])
Ary_filter()-funktio palauttaa taulukon, joka sisältää syötetaulukossa olevat arvot suodatettuna käyttäjän takaisinsoittofunktion tulosten mukaan.
Jos syötetaulukko on assosiatiivinen taulukko, indeksit säilytetään tuloksena olevassa taulukossa.
Esimerkki array_filter()-funktion käytöstä:
paluu ($var % 2 == 1);
}
funktio parillinen($var) (
paluu ($var % 2 == 0);
}
$taulukko1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$taulukko2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd:n";
print_r(array_filter($taulukko1, "pariton"));
echo "Even:n";
t_r(array_filter($jono2, "parillinen"));
?>
Esimerkki tulostaa seuraavan:
Odd: Array(
[a] => 1
[c] => 3
[e] => 5
Even:Array(
=> 6
=> 8
=> 10
=> 12
)
On syytä huomata, että suodatusfunktion nimen sijasta voit määrittää taulukon, joka sisältää viittauksen objektiin ja menetelmän nimen.
On myös syytä huomata, että kun taulukkoa käsitellään array_filter()-funktiolla, sitä ei voi muuttaa: lisätä, poistaa elementtejä tai nollata taulukko, koska tämä voi johtaa toiminnon virheelliseen toimintaan.
PHP 4 >= 4.0.6, PHP 5 tukema toiminto
Katsotaanpa tapoja kirjoittaa arvoja taulukkoon. Olemassa olevaa taulukkoa voidaan muokata asettamalla siihen nimenomaisesti arvoja. Tämä tehdään antamalla arvoja taulukolle.
Arvon määrittäminen taulukkoelementille on sama kuin arvon määrittäminen muuttujalle, paitsi hakasulkeissa (), jotka lisätään taulukon muuttujan nimen jälkeen. Elementin indeksi/avain on merkitty hakasulkeissa. Jos indeksiä/avainta ei ole määritetty, PHP valitsee automaattisesti pienimmän vapaan numeerisen indeksin.
"nolla", 1 => "yksi");
$my_arr = "kaksi";
Jos haluat muuttaa tiettyä arvoa, sinun tarvitsee vain määrittää uusi arvo olemassa olevalle elementille. Voit poistaa minkä tahansa taulukon elementin sen indeksin/avaimen kanssa tai poistaa itse taulukon kokonaan käyttämällä unset()-funktiota:
Huomautus: Kuten edellä mainittiin, jos elementti lisätään taulukkoon ilman avainta, PHP käyttää automaattisesti edellistä suurinta kokonaislukuavaimen arvoa lisättynä 1:llä. Jos taulukossa ei ole vielä kokonaislukuindeksiä, avain on 0 (nolla).
Huomaa, että avaimen suurin kokonaisluku ei välttämättä ole taulukossa tällä hetkellä, tämä voi johtua taulukon elementtien poistamisesta. Kun elementit on poistettu, taulukkoa ei indeksoida uudelleen. Otetaan seuraava esimerkki selventääksesi asiaa:
"; print_r($my_arr); // Lisää elementti (huomaa, että uusi avain on 3, eikä 0). $my_arr = 6; echo "
"; print_r($my_arr); // Indeksoi uudelleen: $my_arr = array_values($my_arr); $my_arr = 7; echo "
"; print_r($my_arr); ?>
Tässä esimerkissä käytettiin kahta uutta funktiota, print_r() ja array_values(). Ary_values()-funktio palauttaa indeksoidun taulukon (indeksoi palautetun taulukon uudelleen numeerisilla indekseillä), ja print_r-funktio toimii kuten var_dump, mutta tulostaa taulukot luettavammassa muodossa.
Nyt voimme tarkastella kolmatta tapaa luoda taulukoita:
Esimerkki osoitti kolmannen tavan luoda taulukko. Jos $weekdays -taulukkoa ei ole vielä luotu, se luodaan. Tämän tyyppistä taulukon luomista ei kuitenkaan suositella, koska jos $weekdays-muuttuja on jo luotu ja sisältää arvon, se voi aiheuttaa odottamattomia tuloksia komentosarjasta.
Jos olet epävarma siitä, onko muuttuja jono, käytä is_array-funktiota. Tarkastus voidaan tehdä esimerkiksi seuraavasti:
"; $no = "säännöllinen merkkijono"; echo is_array($no) ? "Matriisi" : "Ei taulukko"; ?>
PHP:ssä on monia toimintoja ja operaattoreita taulukoiden muuntamiseen: Kokoelma funktioita taulukoiden kanssa työskentelemiseen
On olemassa useita tapoja lisätä taulukko taulukkoon PHP:n avulla, ja ne kaikki voivat olla hyödyllisiä tietyissä tapauksissa.
"Operaattori +"
Tämä on yksinkertainen mutta salakavala tapa:
$c = $a + $b
Tällä tavalla vain ne avaimet lisätään, jotka eivät ole jo $a-taulukossa. Tässä tapauksessa elementit liitetään taulukon loppuun.
Eli jos taulukon $b avain ei ole taulukossa $a, tämän avaimen sisältävä elementti lisätään tuloksena olevaan taulukkoon.
Jos $a-taulukossa on jo elementti, jolla on tällainen avain, sen arvo pysyy ennallaan.
Toisin sanoen termien paikkoja muuttamalla summa muuttuu: $a + $b != $b + $a - tämä kannattaa muistaa.
Tässä on nyt tarkempi esimerkki tämän havainnollistamiseksi:
$arr1 = ["a" => 1, "b" => 2]; $arr2 = ["b" => 3, "c" => 4]; var_export($arr1 + $arr2); //taulukko (// "a" => 1, // "b" => 2, // "c" => 4, //) var_export($arr2 + $arr1); //taulukko (// "b" => 3, // "c" => 4, // "a" => 1, //)
array_merge()-funktio
Voit käyttää tätä toimintoa seuraavasti:
$tulos = array_merge($arr1, $arr2)
Se nollaa numeeriset indeksit ja korvaa merkkijonot. Erinomainen kahden tai useamman taulukon yhdistämiseen numeerisilla indekseillä:
Jos syöttötaulukoissa on samat merkkijonoavaimet, jokainen seuraava arvo korvaa edellisen. Jos taulukoissa on kuitenkin samat numeroavaimet, viimeksi mainittu arvo ei korvaa alkuperäistä arvoa, vaan se lisätään taulukon loppuun.
array_merge_recursive-funktio
Tekee saman kuin array_merge, paitsi että se kulkee rekursiivisesti taulukon jokaisen haaran läpi ja tekee saman lasten kanssa.
array_replace()-funktio
Korvaa taulukon elementit muiden hyväksyttyjen taulukoiden elementeillä.
array_replace_recursive()-funktio
Sama kuin array_replace, mutta käsittelee taulukon kaikki haarat.