Популярността на php implode предполага нейната изключителна полезност и много предимства дори преди обичайното свързване на струни. Той осигурява достатъчна гъвкавост за кодиране и многостранно използване.
Характеристики на програмирането при използване на конкатенация на струни
$ hostname = "localhost";
$ username = "root";
$ password = "";
$ dbname = "my_database";
$ usertable = "my_table";
$ yourfield = "продукт";
$ 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);
Съдържание на база данни:
& lt ;! - fb_336x280_1 - & gt;
& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
Първо ще съберем формата, като използваме обичайната конкатенация на редовете:
$ form = ";
$ form. = '“;
Такъв метод изисква строга последователност от записи, ако е необходимо да се замени един ред с друг, е необходимо да се пренапише кодът.
& lt ;! - fb_336x280_2 - & gt;
& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
В таблицата се вижда информация за продукта, получен от базата данни:
В тази форма е трудно да се определи кои стоки да се поръчват и продават, така че свързването не е подходящо за големи обеми информация.
Гъвкавост и многомерност на използването на функцията implode ()
Писане на низ в масив, а след това комбиниране с php implode, получаваме значително повече варианти за писане на кода.
Ще пренапишем нашия код: ще премахнем конкатенацията, вместо него ще се добавят редовете към масива и ще се съберат от функцията implode ():
$ form = ";
$ форма. 91) ';
if ($ result) {
докато ($ row = mysqli_fetch_assoc ($ result)) {
foreach ($ row като $ key_product = & gt; $ value_product) {
$ form_product [$ key_product] = ";
if ($ key_product & gt; = 38) {
if ($ value_product == 1) {
$ form_product [$ key_product] = " sale_" $ row [" id ']. $ key_product.' '& gt; Продавай.' $ row ['продукт']. ' - '. $ row [' model '].' - '. $ row [' color '].' - ". $ key_product.": ". $ value_product.
";
$ form_product [$ key_product] = "
";
} друго, ако ($ 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). '“;
Да предположим, че се нуждаем от друга отделна таблица за мениджърите, където клетките „Поръчка“ и „Продажба“ трябва да бъдат отделни. Благодарение на implode на php масива, можем да манипулираме низове. Добавете допълнителни масиви и създайте друга форма:
& lt; script type = "text /javascript" & gt;
може да blockSettings2 = {blockId: "R-A-70350-39", renderTo: "yandex_rtb_R-A-70350-39", async:! 0};
if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings2.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {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)} (това, този.документ," yandexContextAsyncCallbacks ");
$ form_sklad = 'Състав';
$ sale = array ();
$ zakaz = масив ();
$ form_sklad. = '';
Събираме същите линии във втората форма ($ form_sklad). "Поръчка" се поставя в масив$ zakaz и "sell" - в масива $ sale. Следователно, всяка единица от продукта или ще бъде в масива $ sale или $ zakaz. Единицата на стоките е една чифт обувки с определен размер (от 38 до 42). Един ред ($ row ['id'] в базата данни съдържа стоки от същия модел, но с различни размери, така че след това комбинираме с php implode всички единици на продукта от един модел в масиви $ form_row_zakaz и $ form_row_sale.Ако има един чифт обувки един размер, тогава такъв продукт ще се появи в масива $ zakaz (продуктът е над) и в масива $ sale (продава последната двойка от този размер).
& lt; script type = "text /javascript" & gt;
може да blockSettings3 = {blockId: "RA-70350-44", renderTo: "yandex_rtb_R-A-70350-44", async:! 0};
if (document.cookie.indexOf ("abmatch = ")> = 0) blockSettings3.statId = 70350;
! Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c]. push (функция () {Ya.Context.AdvManager.render (blockSettings3) }), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex.ru /system/context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този документ," yandexContextAsyncCallbacks ");
По този начин няма нужда да се създава друг цикъл и да се пренаписват редове отново и отново.
Всичко това изглежда така:
$ form = ";
$ form_sklad = 'Композиция';
$ sale = array (); = array ();
$ form. = '
В резултат на това получаваме нова форма, в която стоките се поръчват отделно от продукта за продажба.
& lt; script & gt; (adsbygoogle = window.adsbygoogle || []). push ({})
Можем да създаваме низове в произволен ред и след това, използвайки числени индекси на масив, да определим тяхната последователност. Следващият пример демонстрира това:
ако ($ key_product === "модел") {
$ product
= ''. $ Value_product. '';
} друго, ако ($ key_product === "продукт") {
$ product
= ''. $ Value_product. ''; {239}}
друго, ако ($ key_product === 'пол') {
ако ($ value_product === '1') {
$ продукт= ' мъжки“;
} else {
$ продукт= ' женски ';
}
} друго, ако ($ key_product === 'цвят') {
$ product
= ''. $ Value_product. '';
}
ksort ($ продукт);
В този пример линията се показва, както следва: "Мъжки обувки - Модел - Цвят." Ако промените индексите, тогава последователносттапродукцията ще се промени, с помощта на индексите е много лесно да се промени реда им.
& lt; script type = "text /javascript" & gt;
може да blockSettings = {blockId: "R-A-70350-45", renderTo: "yandex_rtb_R-A-70350-45", async:! 0};
if (document.cookie.indexOf ("abmatch =")> = 0) blockSettings.statId = 70350;
Функция (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (функция () {Ya.Context.AdvManager.render (blockSettings}), e = b.getElementsByTagName ("скрипт") , d = b.createElement ("скрипт"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (това, този.документ," yandexContextAsyncCallbacks ");
Съединяваме елементи от масива $ product с помощта на php implode
$ form_row_product [$ row ['id']] = implode ('', $ product);
и след това да я покажат на страницата, където е необходима:
echo $ form_row_product_string = implode ('
', $ form_row_product);
Сливане на стойностите на многомерни масиви в редове, използващи implode (), array_map () и array_column ()
За да получите редове на всяко място код, създаваме многоизмерен масив $ row_product:
$ row_product [$ row ['id']] = $ product;
Сега можем да наречем масива с array_map:
echo implode (',', array_map (функция ($ entry) {
$ shoes = array ($ entry
, $ entry );
$ shoes_string = implode ('', $ shoes);
връщат $ shoes_string;
}, $ row_product));
Последният пример ще изведе всички модели обувки - мъжки или женски, можете също да покажете цвета и всички други стойности от масива $ product.
Ако трябва само да получите една стойност от $ row_product, можете да приложите функцията array_column:
echo implode (", array_column ($ row_product, 3));
По този начин функцията php implode осигурява достъп до много възможности на масив, които са полезни за извличане на данни и манипулиране на изходни низове, които ни освобождават от суровинатапоследователност от нишки на конкатенацията.
Пълен код:
$ hostname = "localhost";
$ username = "root";
$ password = "";
$ dbname = "my_database";
$ usertable = "my_table";
$ yourfield = "продукт";
$ 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. = '