Значение Unset Array для PHP

Я работаю с петлей PHP, и у меня был один вопрос относительно того, как unset влияет на ключи массива. Этот массив использует стандартные числовые ключи, назначенные PHP, 0, 1, 2, 3 etc... . 0, 1, 2, 3 etc... Всякий раз, когда unset() работает по значению массива, перетаскиваются ли клавиши массива или они поддерживаются по-прежнему?

Спасибо за ваше время.

    Клавиши не перетасовываются и не нумеруются. Клавиша unset() просто удаляется, а остальные остаются.

     $a = array(1,2,3,4,5); unset($a[2]); print_r($a); Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 ) с $a = array(1,2,3,4,5); unset($a[2]); print_r($a); Array ( [0] => 1 [1] => 2 [3] => 4 [4] => 5 ) 

    Проверьте это самостоятельно, но вот результат.

     php -r '$a=array("a","b","c"); print_r($a); unset($a[1]); print_r($a);' Array ( [0] => a [1] => b [2] => c ) Array ( [0] => a [2] => c ) с php -r '$a=array("a","b","c"); print_r($a); unset($a[1]); print_r($a);' Array ( [0] => a [1] => b [2] => c ) Array ( [0] => a [2] => c ) 

    Они такие, как они. Этот один ключ просто удаляется

    Ключ исчезает, является ли он числовым или нет. Попробуйте выполнить тестовый сценарий ниже.

     <?php $t = array( 'a', 'b', 'c', 'd' ); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 1: b, 2: c, 3: d unset($t[1]); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 2: c, 3: d ?> с <?php $t = array( 'a', 'b', 'c', 'd' ); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 1: b, 2: c, 3: d unset($t[1]); foreach($t as $k => $v) echo($k . ": " . $v . "<br/>"); // Output: 0: a, 2: c, 3: d ?> 

    Это может быть немного из контекста, но при отключении значений из глобального массива применить ответ Майкла Берковски выше, но использовать его с $GLOBALS вместо глобального значения, которое вы объявили с помощью global $variable_name . Так будет что-то вроде:

    unset($GLOBALS['variable_name']['array_key']);

    Вместо:

    global $variable_name; unset($variable_name['array_key']);

    NB : Это работает, только если вы используете глобальные переменные.