PHP implode: przekształcanie jednowymiarowych i wielowymiarowych tablic w linie, sortowanie za pomocą indeksów numerycznych.

Popularność implodu php implikuje jego niezwykłą użyteczność i wiele zalet nawet przed zwykłym łączeniem łańcuchów. Zapewnia wystarczającą elastyczność kodowania i wszechstronne zastosowanie.

Cechy programowania przy użyciu operacji konkatenacji

Jeśli tekst jest połączona poprzez łączenie, musimy dostosować się podczas pisania kodu pod ścisłą zgodność z którego tekst ma być zebrane. Spójrzmy na prosty przykład. Program pomoże menedżerom wziąć pod uwagę dostępność towarów w magazynie magazynu. Jeśli produkt się skończył lub prawie skończył, pojawi się przycisk "Zamów". Połącz się z bazą danych.

$ hostname = "localhost";
$ username = "root";
$ password = "";
$ dbname = "moja_bazy danych";
$ usertable = "my_table";
$ yourfield = "produkt";

$ con = mysqli_connect ($ nazwa hosta, $ nazwa użytkownika, $ hasło);
mysqli_select_db ($ con, $ dbname);
mysqli_set_charset ($ con, "utf8");

$ query = "SELECT * FROM $ usertable";

$ result = mysqli_query ($ con, $ query);
mysqli_close ($ con);

danych zawartości

Związek pośredni scenariusz asynchroniczny = „//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

& lt; skrypt & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
,

Po pierwsze, gromadzą postać konwencjonalnymi łańcuchów konkatenacji


tworzą $ = „,.
formy $ = '
',

jeżeli ($ wynik) {
, a ($ wiersz = mysqli_fetch_assoc ($ wynik)) {
tworzą $. = "
"
foreach ($ a $ wiersz = key_product & gt; $ value_product) {

jeżeli ($ key_product & gt; ".

";
$ formularz. = "Nazwa = 'zakaz _". $ Row [' id ']. "_". $ Key_product. "' Id = 'zakaz _". $ Row [' id ']. $ Key_product. „' Min = '1' style = 'width: 50px; background: #ccc;' I kwasu

„;
} else if ($ value_product == 0) {
tworzą $ = „styl = 'szerokość: 50 pikseli, t: #bbb;'. I kwasu

„;
} else {
$ postać = "

";.....
}
} else {
tworzą $ = $ Key_product "" $ Value_product "
.";...
}
}
$ form = "

";
}
}
echo $ form = =
";
,

Metoda ta wymaga ścisłej zgodności z sekwencji wejściowej, jeśli trzeba wymienić jedną linię do drugiego trzeba przerobić kodu.

,
Związek pośredni scenariusz asynchroniczny = „//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({});

W tabeli widać informacje produktu otrzymanego z bazy danych

,

W tej postaci trudno jest zorientować się, jakie produkt do zamówienia sprzedaży i które dlatego konkatenacji nie nadaje się do dużych objętości informacji.

Elastyczność i wieloczynnikowej implode function ()

Pisanie tablicy ciągów, a następnie łącząc je za pomocą PHP implode, mamy dużo więcej opcji do pisania kodu.

w celu przerobienia kodu: Usunięcie konkatenacji zamiast jej linia być zawarte w matrycy i zawiera funkcję implode ().

tworzą $ = „,
tworzą $ =„
„,
, gdy ($ wynik) {
, a ($ wiersz = mysqli_fetch_assoc ($ wynik)) {
foreach ($ rzędu, jak $ key_product = & gt; $ value_product) {
$ form_product [$ key_product] = ";

jeżeli ($ key_product i GT = 38), {
, gdy ($ value_product == 1) {
$ form_product [$ key_product] = ".„Sprzedaż _" $ wiersz [' id ']. $ key_product.' '& gt; Sprzedaj.' $ row ['product']. " - ". $ 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 [$ wiersz ['id']] = implode ("$ form_product),
}
}
}
echo $ form = Implode (". , $ form_row). "
";

Załóżmy, że potrzebujemy osobnej tabeli dla menedżerów, w której komórki "Zamówienie" i "Sprzedaj" powinny być oddzielne. Dzięki implozji macierzy php możemy manipulować ciągami. Dodaj dodatkowe tablice i utwórz inną formę:


& lt; script type = "text /javascript" & gt;
var blockSettings2 = {blockID "R-A-70350-39" renderTo "yandex_rtb_R-A-70350-39" asynchroniczny :! 0};
if (document.cookie.indexOf ("abmatch =") & gt; = 0) blockSettings2.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);
$ form_sklad = 'Kompozycja';
$ sprzedaż = tablica ();
$ zakaz = array ();
$ form_sklad. = '
';

$ sprzedaż [$ key_product] = $ form_product [$ key_product] = "

";

$ zakaz [$ key_product] = $ form_product [$ key_product] = "

";

$ form_row_zakaz [$ wiersz ['id']] = implode ("$ zakaz),
$ form_row_sale [$ wiersz ['id']] = implode (" $ sprzedaż);

echo $ form_sklad. = Implode (", $ form_row_zakaz) .implode (", $ form_row_sale). "
";


Zbieramy te same wiersze w drugim formularzu ($ form_sklad). "Zamówienie" jest umieszczone w tablicy$ zakaz i "sell" - w tablicy sprzedaży $. W związku z tym każda jednostka produktu znajdzie się w tablicy $ sale lub $ zakaz. Jednostką towaru jest jedna para butów określonego rozmiaru (od 38 do 42). One series ($ row [„id”] baza danych zawiera towary tego samego modelu, ale o różnych rozmiarach, więc następnie połączyć za pomocą php implozji całą cenę jednostkową jednego modelu w tablice $ form_row_zakaz i $ form_row_sale. Jeśli nie było jedną parę butów jednej wielkości, po czym produkt będzie, jak w tablicy $ Zakaz (produkt końcach) i tablicy $ sprzedaży (sprzedawany ostatniej pary wielkości),


Związek pośredni. typu skrypt = „text /JavaScript” i kwasu
var blockSettings3 = {blockID "RA-70350-44" renderTo "yandex_rtb_R-A-70350-44" asynchroniczny :! 0}
, jeżeli (document.cookie.indexOf („abmatch = „) i GT,! = 0) blockSettings3.statId = 70350,
, funkcja (a, b, c, d, e) {A [c] = A [c] || [] A [C]. push (function () {Ya.Context.AdvManager.render (blockSettings3) }) E = b.getElementsByTagName ("scenariusz")D = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex.ru /system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks „),

W związku z tym nie ma potrzeby tworzenia kolejnego cyklu i wielokrotnego przepisywania linii.

Wszystko razem jest następujący:

$ form = „,
$ form_sklad = 'strukturę',
$ sprzedaży = array (),
$ zakaz = tablica (),
tworzą $ = '
.';
$ form_sklad = „
";
$ {{186} $ {{184}} $ {{184} {{ $ key_product] = $ zakaz [$ key_product] = $ form_product [$ key_product] = „,
,
, jeżeli ($ key_product i GT = 38), {
, gdy ($ value_product == 1) {(190 ) $ sprzedaż [$ key_product] = $ form_product [$ key_product] = "

"
$ zakaz [$ key_product] = $ form_product [$ key_product] =" nazwa = 'zakaz _”$ rzędu. [' Id '] .'_' $ Key_product.. . " 'id =' zakaz _" $ wiersz ['id'] $ key_product " 'min =' 1 'styl =' szerokość. 50 pikseli; tło: #ccc; ' & gt;

"

} else if ($ value_product == 0) {
$ zakaz [$ key_product] = $ form_product [$ key_product] =" type = 'numer' nazwa = „zakaz_" . $ wiersz ['id'] .'_”.. $ key_product„”id = 'zakaz _ "$ wiersz [' id '].. $ key_product"' min = '1' styl =" szerokość: 50 pikseli; tło: #bbb; ' & gt;
,

rezultatem jest nowa forma gdzie towary zamówić oddzielnie od towarów na sprzedaż

Związek pośredni. Script asynchroniczny =„//pagead2.googlesyndication.com/pagead/js /adsbygoogle.js">,

Związek pośredni scenariusz i kwasu (adsbygoogle = window.adsbygoogle || []) pchania ({}).
,
,

linii, że można tworzyć w dowolnej kolejności, a następnie za pomocą wskaźnika numerycznego tablicy w celu określenia ich sekwencji. Poniższy przykład ilustruje to.

, jeśli ($ key_product === "wzór") {
$ produktu
= ',' $ Value_product '.";
} else if ($ key_product === "produkt") {
$ produktu,
= '.' $ Value_product.";
}
else if ($ key_product === 'płeć') {
, jeżeli ($ value_product === '1') {
$ produktów

= „ [mężczyzn 243] ";
} else {
$ product

= ' female ';
}
} else if ($ key_product === 'kolor') {
$ produkt
= '.' $ Value_product.";
}
ksort ($ produkt);
,

W tym przykładzie linię oblicza się w następujący sposób:. "Człowiek - buty - model - kolor" Jeśli zmienisz indeksy, to sekwencjaZmiana wyjście indeksów jest bardzo łatwa zmiana kolejności.


Związek pośredni typu skrypt = "text /JavaScript" & gt;
blockSettings var = {blockID "R-A-70350-45" renderTo "yandex_rtb_R-A-70350-45", asynchroniczny :! 0};
czy (document.cookie.indexOf ("abmatch =") i GT = 0) blockSettings.statId = 70350;
! Zastosowanie (a, b, c, d, e) {A [c] = A [c] || [] A [c] .Push (funkcja () {Ya.Context.AdvManager.render (blockSettings)}), e = b.getElementsByTagName ("scenariusz")d = b.createElement ("scenariusz") d.type = "text /JavaScript" d.src = „//an.yandex .ru /System /context.js "d.async = 0e.parentNode.insertBefore (d, e)} (to this.document," yandexContextAsyncCallbacks „);

łączy w sobie elementy tablicy $ produktu za pomocą php implode

$ form_row_product [$ wiersz ['id']] = implode ('' $ produkt);

, a następnie wyprowadzić na stronę, gdzie jest potrzebne:

echo $ form_row_product_string = implode ('
', $ form_row_product);
,

łączy WARTOŚCIAMI tablice wielowymiarowe w rzędach za pomocą implode, array_map () () i array_column ()

, w przypadku każdej linii z każdego miejsca Kod utworzyć wielowymiarowej tablicy $ row_product

$ row_product [$ wiersz ['id']] = $ produktu;

Teraz możemy spowodować, że wartość tablicy używając array_map:

echo implozji ('', array_map (function ($ wejścia) {
$ buty = tablica ($ wejście
$ wejście

),
$ shoes_string = implode ('' $ bieżnika),
powrotny $ shoes_string,
} $ row_product));

Ostatni przykład drukuje wszystkie buty - mężczyźni i kobiety, może również przynieść kolor i wszystkie inne wartości z tablicy $ produktu.

Jeśli masz tylko jedną wartość $ row_product, można użyć array_column Zastosowanie:

implozji echo (”array_column ($ row_product, 3));

w ten sposób funkcja php implode zapewnia dostęp do wielu możliwości do tablic, które są przydatne do manipulacji danymi i wyjściowych linii, które uwalnia nas od surowychsekwencja ciągów konkatenacji.

wszystkie Kod:

$ hosta = "localhost";
$ username = "root";
$ password = "";
$ dbname = "moja_bazy danych";
$ usertable = "my_table";
$ yourfield = "produkt";

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 = „;
$ form_sklad = 'Structure'
$ sprzedaż = array ();
$ zakaz = array ();
$ product = array ()
$ row_product = tablica (),
$ form = '
.';
$ form_sklad = „
.
";

, jeżeli ($ wynik) {
, a ($ wiersz = mysqli_fetch_assoc ($ wynik)) {
foreach ($ rzędzie jako $ key_product = & gt; $ value_product) {
$ sprzedaży [$ key_product] = $ zakaz [$ key_product] = $ form_product [$ key_product] = „,
,
, jeżeli ($ key_product i GT = 38), {
, jeżeli ($ value_product == 1) {(322 ) $ sprzedaż [$ key_product] = $ form_product [$ key_product] = "

"
$ zakaz [$ key_product] = $ form_product [$ key_product] =" ,

"

} else if ($ value_product == 0) {
$ zakaz [$ key_product] = $ form_product [$ key_product] =" ,

"

;} else {
$ sprzedaż [$ key_product] = $ form_product [$ key_product] ="

"
}
} else {
, jeżeli ($ key_product ===" wzór „) {
$ produktu
= '' . $ value_product. "';
} else if ($ key_product === "produkt") {
$ produktu,
=' , '$ Value_product.'.';
}
else if ($ key_product ===' płeć ') {
, jeżeli ($ value_product ===' 1 ') {
$ produktu

='mężczyzn';
} else {
$ produktu

='kobiet„;
}
} else if ($ key_product === 'kolor') {
$ produkt
= '.' $ value_product.';
}
$ row_product [$ wiersz [' id „]] = $ produkt,
$ form_product [$ key_product] = $ key_product. "" $ Value_product".
„,
$ form_row_product [$ wiersz ['id']] = implode ('' $ produkt);
$ form_row_zakaz [$ row ['id']]]] = implode (", $ zakaz);
$ form_row_sale [$ wiersz ['id']] = implode ("$ sprzedaży),
}
}
}
echo $ form = Implode. (" $ Form_row) . "
";
echo $ form_sklad. = Implode ("$ form_row_zakaz) .implode (" $ form_row_sale). ";
echa $ form_row_product_string = implode ('
,' $ form_row_product);

echa implode ('', array_map (funkcja ($ pozycji) {
$ buty = tablica ($ wejście
$ wejście

),
$ shoes_string = implode ("$ bieżnika),
powrotny $ shoes_string,
} $ row_product)),
echa $ array_column = implode (" array_column ($ row_product 3));

Powiązane publikacje