Построение динамического многомерного массива в PHP [дубликат] ⇐ Php
-
Anonymous
Построение динамического многомерного массива в PHP [дубликат]
Я пытаюсь динамически построить многомерный массив в PHP. У меня есть структура с категориями, подкатегориями, подкатегориями и так далее. Я сохраняю в MariaDB для каждой записи строку, которая дает мне путь к этим подподкатегориям, и сохраняю массив в другой таблице, сериализующей этот массив
Я создал команду push in array динамически, но она не выполняется как команда. Я хочу динамически построить команду $arr[key1][key2][key3] и т. д. и вставить значение (значение не имеет значения, все, что меня интересует, это ключ) в этот массив< /п> Спасибо
$sel_arr="SELECT * FROM arr_categ WHERE is_activ=1"; $res_arr=mysqli_query($conn,$sel_arr); $rez_arr=mysqli_fetch_object($res_arr); $id_arr=$rez_arr->id; if($rez_arr->nume=='xxx'){ $arr=массив(); } еще { $arr=unserialize($rez_arr->nume); } if(isset($_POST["save_c"])){ $id_categ=mysqli_real_escape_string($conn, $_POST["id_categ"]); $nume_c=mysqli_real_escape_string($conn,$_POST["nume_c"]); если ($id_categ==0){ $ins="INSERT INTO катег (число, id_ordine, id_parinte, строка) VALUES ('$nume_c', '1', '0', '0')"; mysqli_query($conn,$ins); $id_c=mysqli_insert_id($conn); $arr[$id_c]=массив(); print_r ($ обр); $arr_ser=сериализовать($arr); $upd_arr="ОБНОВЛЕНИЕ arr_categ SET nume='$arr_ser' WHERE id='$id_arr'"; mysqli_query($conn,$upd_arr); } еще { $sel_cat="ВЫБРАТЬ * ИЗ категории ГДЕ id='$id_categ'"; $res_cat=mysqli_query($conn,$sel_cat); $nr_cat=mysqli_num_rows($res_cat); если($nr_cat==1){ $rez_cat=mysqli_fetch_object($res_cat); $id_ordine=$rez_cat->id_ordine+1; $id_parinte=$rez_cat->id_parinte+1; if($rez_cat->string==0){ $string=$id_categ; } еще { $string=$rez_cat->string.','.$rez_cat->id; } $ins_cat="INSERT INTO катег (число, id_ordine, id_parinte, строка) VALUES ('$nume_c', '$id_ordine', '$id_parinte', '$string')"; mysqli_query($conn,$ins_cat); $id_cat=mysqli_insert_id($conn); $arr_string=explode(",",$string); $c=count($arr_string); foreach($arr_string как $item){ $str.='['.$item.']'; } $new_str='arr'.$str.'['.$id_cat.']'; "$".$new_str=50; //$arr_ser=serialize($arr); //$upd_arr="ОБНОВЛЕНИЕ arr_categ SET nume='$arr_ser' WHERE id='$id_arr'"; //эхо $upd_arr.'
'; //mysqli_query($conn,$upd_arr); } } }
Я пытаюсь динамически построить многомерный массив в PHP. У меня есть структура с категориями, подкатегориями, подкатегориями и так далее. Я сохраняю в MariaDB для каждой записи строку, которая дает мне путь к этим подподкатегориям, и сохраняю массив в другой таблице, сериализующей этот массив
Я создал команду push in array динамически, но она не выполняется как команда. Я хочу динамически построить команду $arr[key1][key2][key3] и т. д. и вставить значение (значение не имеет значения, все, что меня интересует, это ключ) в этот массив< /п> Спасибо
$sel_arr="SELECT * FROM arr_categ WHERE is_activ=1"; $res_arr=mysqli_query($conn,$sel_arr); $rez_arr=mysqli_fetch_object($res_arr); $id_arr=$rez_arr->id; if($rez_arr->nume=='xxx'){ $arr=массив(); } еще { $arr=unserialize($rez_arr->nume); } if(isset($_POST["save_c"])){ $id_categ=mysqli_real_escape_string($conn, $_POST["id_categ"]); $nume_c=mysqli_real_escape_string($conn,$_POST["nume_c"]); если ($id_categ==0){ $ins="INSERT INTO катег (число, id_ordine, id_parinte, строка) VALUES ('$nume_c', '1', '0', '0')"; mysqli_query($conn,$ins); $id_c=mysqli_insert_id($conn); $arr[$id_c]=массив(); print_r ($ обр); $arr_ser=сериализовать($arr); $upd_arr="ОБНОВЛЕНИЕ arr_categ SET nume='$arr_ser' WHERE id='$id_arr'"; mysqli_query($conn,$upd_arr); } еще { $sel_cat="ВЫБРАТЬ * ИЗ категории ГДЕ id='$id_categ'"; $res_cat=mysqli_query($conn,$sel_cat); $nr_cat=mysqli_num_rows($res_cat); если($nr_cat==1){ $rez_cat=mysqli_fetch_object($res_cat); $id_ordine=$rez_cat->id_ordine+1; $id_parinte=$rez_cat->id_parinte+1; if($rez_cat->string==0){ $string=$id_categ; } еще { $string=$rez_cat->string.','.$rez_cat->id; } $ins_cat="INSERT INTO катег (число, id_ordine, id_parinte, строка) VALUES ('$nume_c', '$id_ordine', '$id_parinte', '$string')"; mysqli_query($conn,$ins_cat); $id_cat=mysqli_insert_id($conn); $arr_string=explode(",",$string); $c=count($arr_string); foreach($arr_string как $item){ $str.='['.$item.']'; } $new_str='arr'.$str.'['.$id_cat.']'; "$".$new_str=50; //$arr_ser=serialize($arr); //$upd_arr="ОБНОВЛЕНИЕ arr_categ SET nume='$arr_ser' WHERE id='$id_arr'"; //эхо $upd_arr.'
'; //mysqli_query($conn,$upd_arr); } } }