2010-04-12 10 views

Respuesta

4

Básicamente: Sólo lo hacen.

El manual tiene buenos ejemplos como éste:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, 2); 
// $input is now array("red", "green") 

si algo no funciona para usted, por favor, añadir más detalles a su pregunta.

+0

cómo borrar "azul"? – lovespring

+0

@lovespring te refieres a cómo encontrar la posición del índice de "azul", ¿correcto? –

+0

no, quiero decir, elimine el "azul", simplemente elimine un elemento en el medio de la matriz. – lovespring

1

A partir de (id es el elemento que desea eliminar):

$input = array("a", "b", "c", "d", "e"); 
$id=2; 

gama de empalme:

$a1 = array_slice($input, $id); 
print_r($a1); 

Array 
(
    [0] => c 
    [1] => d 
    [2] => e 
) 

gama rebanada:

array_splice($input, $id-1); 
print_r($input); 

Array 
(
    [0] => a 
) 

La fusión de empalme y la rebanada le dará una matriz que es la misma que la matriz de entrada, pero sin el elemento específico.

Probablemente pueda hacerlo con solo una línea, pero lo dejo como ejercicio para los lectores.

1

¿Tiene que ser array_splice? Creo que la forma más adecuada (tal vez en función del tamaño de la matriz, no sé qué tan bien array_search escalas) es utilizar array_search() con unset():

$array = array('foo', 'bar' => 'baz', 'bla', 5 => 'blubb'); 

// want to delete 'baz' 
if(($key = array_search('baz', $array)) !== FALSE) { 
    unset($array[$key]); 
} 
+0

Lo sé de esta manera, primero desarmado, luego uso de valores_arreglos. Gracias . – lovespring

3

cómo acaba de suprimir "azul"?

Aquí van:

$input = array("red", "green", "blue", "yellow"); 
array_splice($input, array_search('blue', $input), 1); 
7

realidad. Se me ocurrió dos maneras de hacer eso. Depende de cómo va a manejar el problema del índice.

Si desea seguir siendo los índices después de eliminar ciertos elementos de una matriz, necesitaría unset().

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 

    /*Here, I am gonna delete "Rick" only but remain the indices for the rest */ 
    unset($array[2]); 
    print_r($array); 
?> 

El apagada, sería:

Array ([0] => Tom [1] => Jack [3] => Alex) //The indices do not change! 

Sin embargo, si necesita una nueva matriz sin mantener los índices anteriores, a continuación, utilizar array_splice():

<?php 
    $array = array("Tom","Jack","Rick","Alex"); //the original array 
    /*Here,we delete "Rick" but change indices at the same time*/ 
    array_splice($array,2,1); // use array_splice() 

    print_r($array); 
?> 

La salida de este el tiempo sería:

Array ([0] => Tom [1] => Jack [2] => Alex) 

Espero, esto ayudaría!

+0

Este debería ser el aceptado – Kenedy

Cuestiones relacionadas