2010-02-28 4 views
2

Comment puis-je supprimer une plage de touches comprise entre 70 et 80 dans un tableau comme celui-ci?plage de clés non définie dans un tableau

[63] => Computer Science and Informatics 
[64] => Dentistry 
[65] => Development Studies 
[66] => Drama, Dance and Performing Arts 
[67] => Earth Systems and Environmental Sciences 
[68] => Economics and Econometrics 
[69] => Education 
[70] => Electrical and Electronic Engineering 
[71] => English Language and Literature 
[72] => Epidemiology and Public Health 
[73] => European Studies 
[74] => French 
[75] => General Engineering and Mineral & Mining Engineering 
[76] => Geography and Environmental Studies 
[77] => Geography and Environmental Studies 
[78] => German, Dutch and Scandinavian Languages 
[79] => Health Services Research 
[80] => History 
[81] => History of Art, Architecture and Design 
[82] => Iberian and Latin American Languages 
[83] => Infection and Immunology 
[84] => Italian 
[85] => Law 
[86] => Library and Information Management 
[87] => Linguistics 
[88] => Mechanical, Aeronautical and Manufacturing Engineering 
[89] => Metallurgy and Materials 
[90] => Middle Eastern and African Studies 
+0

son pour enlever 67 clés, donc ne veulent désinitialiser chacun individuellement – smith

Répondre

9

Vous pouvez array_slice

$return = array_slice($original, 0, 60) 

puis

$return = $return+array_slice($original, 70) 

ou

array_splice

$return = array_splice($original, 60, 10) 
+2

Cela fonctionne, mais il est vraiment inefficace. Vous créez 3 tableaux en plus de celui avec lequel vous commencez. – ryeguy

+0

Étant donné qu'il s'agit d'un ensemble de données assez petit, j'irais probablement avec cette solution, je ne pense pas que son * efficacité * va avoir un impact perceptible sur les performances, en plus il est lisible et quelque peu élégant. Voté – karim79

+0

+1 pour array_splice – Gordon

9

Il n'y a pas vraiment un raccourci à ceci:

for ($i = 70; $i <= 80; $i++) 
    unset($array[$i]); 
+0

+1 pour celui-ci aussi, c'est une solution plus simple et fait le même travail –

+2

C'est un peu décevant, tous les codeurs PHP qui demandent toujours s'il y a une fonction à faire quelque chose Bizarrement, quand une boucle for()/foreach() le fait bien. – TravisO

+0

Pouvez-vous faire un pas en avant dans le tableau pendant la mise hors service? Cela ne cause-t-il pas un problème avec la modification de l'index de l'élément suivant pour qu'il soit désactivé lorsque vous vous déplacez? J'aurais pensé que vous deviez passer de 80 à 70, en décrémentant i. –