Я пытаюсь вставить массив или (если он уже объявлен) добавить в него элемент.
Вывод Print_r массива $ data:
Array
(
[0] => Array
(
[0] => 7727368
[1] => Array
(
)
)
[1] => Array
(
[0] => 7727284
[1] => Array
(
[0] => Array
(
[0] => 7543419783
)
)
)
[2] => Array
(
[0] => 7787473
[1] => Array
(
[0] => Array
(
[0] => 7771723347
)
[1] => Array
(
[0] => 8458457
)
)
)
)
PHP код:
$idaukcji = $_POST['idaukcji'];
$modid = $_POST['modid'];
foreach($data as $item){
foreach($item[1] as $subitem){
if($subitem[0]==$idaukcji){
if(array_key_exists('1',$subitem)){
array_push($subitem[1],$modid);
}
else{
array_push($subitem, array($modid));
}
}
$tobase = base64_encode(serialize($item[1]));
$sql="UPDATE data SET allegroaucnum='$tobase' WHERE wfnum = '$item[0]'";
mysqli_query($conn,$sql) or die(mysqli_error($conn));
}
}
Сценарий должен проверить, существует ли существующий массив в индексе [1] наиболее глубоко вложенного массива, если он объявлен, тогда он должен добавить $modid
к этому массиву, если нет, то создать массив с $modid
в качестве элемент.
Фактический код дает то, что мы видим выше (в print_r), но если я добавлю
echo $subitem[1][0];
после (внутри)
array_push($subitem, array($modid));
Возвращает значение $ modid, которое как-то не отображается в print_r
.
Заранее спасибо за помощь.