функция delete_item () из массива переполнения стека

Почему эта функция не работает? После вызова этого же массива печатается.

$myArray1 = ["Barcelona",  "Romania", "Cile", "France"];

function del(&$array, $item_to_del){
foreach ($array as $item) {
if ($item == $item_to_del){
unset($item);

}
}
}

del($myArray1, "Barcelona");
var_dump($myArray1);

1

Решение

Вы должны удалить index также.

Попробуй это:

<?php

$myArray1 = ["Barcelona",  "Romania", "Cile", "France"];

function del(&$array, $item_to_del){
foreach ($array as $key => $item) {
if ($item == $item_to_del){
unset($array[$key]);

}
}
}

del($myArray1, "Barcelona");
var_dump($myArray1);
0

Другие решения

Просто замените функцию del на это. попробуй это:

function del(&$array, $item_to_del){
if (($key = array_search($item_to_del, $array)) !== false) {
unset($array[$key]);
}
}
1

По вопросам рекламы [email protected]