Priljubljenost implodiranja php pomeni njeno izredno koristnost in številne prednosti še pred običajnim združevanjem nizov. Zagotavlja dovolj prožnosti za kodiranje in vsestransko uporabo.
Značilnosti programiranja pri uporabi združevanja nizov
$ hostname = "localhost";
$ username = "root";
$ password = "";
$ dbname = "my_database";
$ usertable = "my_table";
$ yourfield = "izdelek";
$ con = mysqli_connect ($ hostname, $ username, $ password);
mysqli_select_db ($ con, $ dbname);
mysqli_set_charset ($ con, "utf8");
$ query = "SELECT * FROM $ usertable";
$ result = mysqli_query ($ con, $ query);
mysqli_close ($ con);
Vsebina baze podatkov:
& lt ;! - fb_336x280_1 - & gt;
& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
Najprej bomo zbrali obliko z uporabo običajnega združevanja vrstic:
$ form = ";
$ form. = '“;
Taka metoda zahteva strogo zaporedje zapisov, če je treba zamenjati eno vrstico z drugo, je treba kodo ponovno napisati.
& lt ;! - fb_336x280_2 - & gt;
& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
V tabeli so prikazani podatki o izdelku, pridobljenem iz baze podatkov:
V tej obliki je težko ugotoviti, katero blago naročiti in prodati, zato združevanje ni primerno za velike količine informacij.
Fleksibilnost in večdimenzionalnost uporabe funkcije implode ()
Pisanje niza v matriko, ki jo nato združimo s php implodo, dobimo bistveno več različic pisanja kode.
Ponovno bomo napisali našo kodo: odstranili bomo združevanje, namesto da bi se vrstici dodali v polje in zbrali s funkcijo implode ():
$ form = ";
$ form. 91) ';
if ($ result) {
medtem ($ row = mysqli_fetch_assoc ($ result)) {
foreach ($ row kot $ key_product = & gt; $ value_product) {
$ form_product [$ key_product] = ";
if ($ key_product & gt; = 38) {
if ($ value_product == 1) {
$ form_product [$ key_product] = " prodaja _" $ row [" id ']. $ key_product.' '& gt; Prodaj.' $ row ['izdelek']. ' - '. $ row [' model '].' - '. $ row [' color '].' - ". $ key_product.": ". $ value_product.
";
$ form_product [$ key_product] = "
";
} else if ($ value_product == 0) {
$ form_product [$ key_product] = "
";
} else {
$ form_product [$ key_product] = "
";
}
} else {
$ form_product [$ key_product] = $ key_product. ":". $ Value_product. "
";
}
$ form_row [$ row ['id']] = implode (", $ form_product);
}
}
}
echo $ form = implode (" , $ form_row). '“;
Recimo, da potrebujemo še eno ločeno tabelo za upravljavce, kjer bi morale biti celice "Naročilo" in "Prodaja" ločene. Zahvaljujoč implodiranju niza php lahko manipuliramo z nizi. Dodajte dodatne matrike in ustvarite drugo obliko:
& lt; script type = "text /javascript" & gt;
lahko blockSettings2 = {blockId: "R-A-70350-39", renderTo: "yandex_rtb_R-A-70350-39", async:! 0};
if (document.cookie.indexOf ("abmatch ="))> = 0) blockSettings2.statId = 70350;
Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
$ form_sklad = 'Sestava';
$ sale = array ();
$ zakaz = array ();
$ form_sklad. = '“;
Zbiramo iste vrstice v drugi obliki ($ form_sklad). "Vrstni red" je uvrščen v polje$ zakaz in "prodati" - v polju $ sale. Zato bo vsaka enota izdelka bodisi v polju $ sale ali $ zakaz. Enota blaga je en par čevljev določene velikosti (od 38 do 42). Ena vrstica ($ row ['id'] v bazi podatkov vsebuje blago istega modela, vendar različnih velikosti, zato združimo s php implode vse enote izdelka enega modela v nizih $ form_row_zakaz in $ form_row_sale.Če obstaja en par čevljev en velikost, se bo tak izdelek pojavil v nizu $ zakaz (izdelek je konec) in v polju $ sale (prodati zadnji par te velikosti).
& lt; script type = "text /javascript" & gt;
lahko blockSettings3 = {blockId: "RA-70350-44", renderTo: "yandex_rtb_R-A-70350-44", async:! 0};
if (document.cookie.indexOf ("abmatch") = ")> = 0) blockSettings3.statId = 70350;
! Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c]. push (funkcija () {Ya.Context.AdvManager.render (blockSettings3) }), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex.ru /system/context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
Zato ni treba ustvariti novega cikla in znova in znova prepisati vrstice.
Vse to izgleda tako:
$ form = ";
$ form_sklad = 'Sestava';
$ sale = array (); = array ();
$ form. = '
Zato dobimo novo obliko, v kateri se blago naroči ločeno od izdelka za prodajo.
& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({})
Stvari lahko ustvarimo v poljubnem vrstnem redu in nato z uporabo numeričnih indeksov matrike določimo njihovo zaporedje. Naslednji primer to kaže:
če ($ key_product === "model") {
$ product
= ''. $ Value_product. '';
} else if ($ key_product === "product") {
$ product
= ''. $ Value_product. ''; {239}}
drugje, če ($ key_product === 'spol') {
če ($ value_product === '1') {
$ product= ' moški“;
} drugo {
$ product= ' samica ';
}
} else if ($ key_product === 'color') {
$ product
= ''. $ Value_product. '“;
}
ksort ($ product);
V tem primeru je vrstica prikazana takole: "Moški čevlji - Model - Barva." Če spremenite indekse, potem zaporedjeproizvodnja se bo spremenila, s pomočjo indeksov pa bo zelo enostavno spremeniti njihov vrstni red.
& lt; script type = "text /javascript" & gt;
lahko blockSettings = {blockId: "R-A-70350-45", renderTo: "yandex_rtb_R-A-70350-45", async:! 0};
if (document.cookie.indexOf ("abmatch ="))> = 0) blockSettings.statId = 70350; Funkcija (a, b, c, d, e) {a [c] = a [c] || [], [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ta, ta.dokument," yandexContextAsyncCallbacks ");
Združujemo elemente niza $ product s pomočjo php implode
$ form_row_product [$ row ['id']] = implode ('', $ product);
in ga nato prikaže na strani, kjer je potrebna:
echo $ form_row_product_string = implode ('
', $ form_row_product);
Vrednosti večdimenzionalnih nizov združimo v vrstice z uporabo implode (), array_map () in array_column ()
. kodo, izdelamo večdimenzionalni niz $ row_product:
$ row_product [$ row ['id']] = $ product;
Sedaj lahko pokličemo matriko z array_map:
echo implode (',', array_map (funkcija ($ entry) {
$ shoes = array ($ entry
, $ entry );
$ shoes_string = implode ('', $ shoes),
vrnejo $ shoes_string;
}, $ row_product));
Zadnji primer bo prikazal vse modele čevljev - moške ali ženske, lahko pa tudi barvo in vse druge vrednosti iz polja $ product.
Če potrebujete samo eno vrednost iz $ row_product, lahko uporabite funkcijo array_column:
echo implode (", array_column ($ row_product, 3));
Funkcija implodiranja php omogoča dostop do številnih zmožnosti polja, ki so uporabne za pridobivanje podatkov in manipulacijo izhodnih nizov, ki nas osvobajajo ostregazaporedje povezovalnih nizov.
Celotna koda:
$ hostname = "localhost";
$ username = "root";
$ password = "";
$ dbname = "my_database";
$ usertable = "my_table";
$ yourfield = "izdelek";
$ con = mysqli_connect ($ hostname, $ username, $ password);
mysqli_select_db ($ con, $ dbname);
mysqli_set_charset ($ con, "utf8");
$ query = "SELECT * FROM $ usertable";
$ result = mysqli_query ($ con, $ query);
mysqli_close ($ con);
$ form = ";
$ sale = array ();
$ zakaz = array ();
$ product = array ()
$ row_product = array ();
$ form. = '