Я чувствую себя довольно глупо, отвечая на это сам так быстро, когда люди начали смотреть на это для меня ... Но я потратил на это часы в прошлом и ожидал потратить на это больше часов, но в этот раз мне повезло! [110 ]
Второй «дубликат» добавляется подключением под названием «iThemes» (это сервис, который позволяет центральному администратору нескольких WordPress сайтов). Я свяжусь с ними.
Попробовать unset($array[null]);
Если это не работает, распечатайте массив через var_export
или var_dump
вместо print_r
, так как это позволяет Вам видеть тип ключа. Использовать var_export
видеть данные в синтаксисе PHP.
var_export($array);
Обратите внимание, что var_export не работает с рекурсивными структурами.
Попытайтесь использовать var_dump
вместо print_r
. Это может дать Вам лучшее представление о том, каков точно ключ.
Мое предположение - то, что это не пустая строка. Попробуйте следующее для наблюдения то, что Вы получаете:
foreach ($array as $index => $value) {
echo $index;
echo ' is ';
echo gettype($index);
echo "\n";
}
Не уверенный, что сказать Вам. Запущение этого скрипта
<?php
$arr = array(
false => 1
, true => 2
, null => 3
, 'test' => 4
// , '' => 5
);
print_r( $arr );
foreach ( $arr as $key => $value )
{
var_dump( $key );
}
unset( $arr[''] );
print_r( $arr );
Я получаю следующий вывод
Array
(
[0] => 1
[1] => 2
[] => 3
[test] => 4
)
int(0)
int(1)
string(0) ""
string(4) "test"
Array
(
[0] => 1
[1] => 2
[test] => 4
)
Посмотрите, как "пустой" ключ массива был типом, преобразованным в пустую строку?
Вы уверены, что не работаете с копией массива? Если Вы сделали этот вызов для сбрасывания () из функции, возможно, что Вы.
Это было протестировано на PHP 5.2.0
Попробованный:
$someList = Array('A' => 'Foo', 'B' => 'Bar', '' => 'Bah');
print_r($someList);
echo '<br/>';
unset($someList['A']);
print_r($someList);
echo '<br/>';
unset($someList['']);
print_r($someList);
echo '<br/>';
Добрался:
Array ( [A] => Foo [B] => Bar [] => Bah )
Array ( [B] => Bar [] => Bah )
Array ( [B] => Bar )
Необходимо проанализировать, куда ключ прибывает из, также...
Отправьте код, который Вы используете для удаления элемента также код средства проверки прежде и после той строки.
То, что я ищу, является чем-то вроде этого:
var_export($array);
echo "\n";
unset($array[""]);
var_export($array);
Также отправьте полный вывод обоих var_export
строки.
Я ищу что-то вроде этого:
array (
'' => 1,
)
array (
)