2010-06-16 13 views

Respuesta

265

Puede utilizar unset:

unset($array['key-here']); 

Ejemplo:

$array = array("key1" => "value1", "key2" => "value2"); 
print_r($array); 

unset($array['key1']); 
print_r($array); 

unset($array['key2']); 
print_r($array); 

Salida:

Array 
(
    [key1] => value1 
    [key2] => value2 
) 
Array 
(
    [key2] => value2 
) 
Array 
(
) 
+9

+1: Gracias por la ayuda. PHP newb aquí, pero vale la pena señalar que si intenta realizar estas ediciones dentro de un bucle 'foreach', entonces debe anteponer un signo a su variable de enumeración para permitir el acceso de escritura. – FreeAsInBeer

+1

Gracias FreeAsInBeer - esto me ahorró otros 30 a 60 minutos de búsqueda – Igor

4

Usando unset:

unset($array['key1']) 
1

Es posible que tenga dos o más bucles en función de su matriz:

$arr[$key1][$key2][$key3]=$value1; // ....etc 

foreach ($arr as $key1 => $values) { 
    foreach ($key1 as $key2 => $value) { 
    unset($arr[$key1][$key2]); 
    } 
} 
+0

'foreach ($ key1' parece incorrecto. ¿Quiso decir' foreach ($ values'? – Pang

12

Utilice esta función para eliminar las matrices específicas de llaves sin modificar la matriz original:

function array_except($array, $keys) { 
    return array_diff_key($array, array_flip((array) $keys)); 
} 

Primero para m pasar todo el conjunto, segundo parámetro establecer un conjunto de claves para eliminar.

Por ejemplo:

$array = [ 
    'color' => 'red', 
    'age' => '130', 
    'fixed' => true 
]; 
$output = array_except($array, ['color', 'fixed']); 
// $output now contains ['age' => '130'] 
+1

) tiene que cerrar sus cotizaciones en '$ output = array_except ($ array_1 , ['color', 'fijo']); ' –

+0

¡Manera realmente eficiente! –

0

A continuación se muestra un método que elimina objetos de un asociativa con offset, longitud y sustitución - usando array_splice

function array_splice_assoc(&$input, $offset, $length = 1, $replacement = []) { 
 
     $replacement = (array) $replacement; 
 
     $key_indices = array_flip(array_keys($input)); 
 
     if (isset($input[$offset]) && is_string($offset)) { 
 
      $offset = $key_indices[$offset]; 
 
     } 
 
     if (isset($input[$length]) && is_string($length)) { 
 
      $length = $key_indices[$length] - $offset; 
 
     } 
 

 
     $input = array_slice($input, 0, $offset, TRUE) + $replacement + array_slice($input, $offset + $length, NULL, TRUE); 
 
      return $input; 
 
    } 
 

 
// Example 
 
$fruit = array(
 
     'orange' => 'orange', 
 
     'lemon' => 'yellow', 
 
     'lime' => 'green', 
 
     'grape' => 'purple', 
 
     'cherry' => 'red', 
 
); 
 

 
// Replace lemon and lime with apple 
 
array_splice_assoc($fruit, 'lemon', 'grape', array('apple' => 'red')); 
 

 
// Replace cherry with strawberry 
 
array_splice_assoc($fruit, 'cherry', 1, array('strawberry' => 'red'));

Cuestiones relacionadas