Удалить элемент в массиве

dirdir

Постоялец
Регистрация
19 Мар 2012
Сообщения
112
Реакции
16
Здравствуйте, такая простая проблема. Не удаляет элемент массива, если ключ вставлять через переменную. Программирую на JS поэтому не могу понять в чём трабла

PHP:
$headlink = $this->getHeadData();  // Получаем скрипты стили и прочее в массиве
$delscripts = array_keys ($headlink['styleSheets']);   // Получаем ключи

foreach ($delscripts as $k => $v) {
unset ($headlink['styleSheets']["{$v}"]);     // Не удаляет
unset ($headlink['styleSheets'][$v]);     // Не удаляет

unset ($headlink['styleSheets']['ключь в виде строки']);     // Удаляет норм

echo $v; echo "
";
}

$this->setHeadData($headlink);
 
unset ($headlink['styleSheets'][$k]);
 
unset ($headlink['styleSheets'][$k]);

Да, но...
array_keys возвращает ключи массива, и при переборе массива они содержатся в значении массива ,то есть при
foreach ($delscripts as $k => $v) {

V - это как раз ключ ассоциативного массива,
 
Код:
unset ($headlink['styleSheets'][$delscripts[$k]];
но тоже врядли удалит, раз по другому не хочет, а пример что в массиве можно?
 
В массиве данные для Header в Joomla3.

Я так понимаю тут какие-то проблемы с кодировками . Т.к. по сути такой код должен работать.
 
Пример имелся в виду, что вообще приходит,чтоб можно было протестить локально. Можно вывести через print_r
 
Как я понял, вам нужно просто снести $headlink['styleSheets'] целиком?
Можно же не перебирая просто
PHP:
unset ($headlink['styleSheets']);
а если вам надо, чтобы там был пустой массив
PHP:
$headlink['styleSheets']=array();
 
Последнее редактирование:
Use $k. $k is index of item in array and in PHP you can select item from array by key or index.
$array = ['first' => 1, 'second' =>2];
$array[0] = $array['first']
 
Назад
Сверху