Tito Tito Postado Dezembro 17, 2004 Denunciar Share Postado Dezembro 17, 2004 olá gente,meu problema não é exatamente o array_splice e sim os índices da array, pois quando uso o array_splice para remover elementos de uma array, a array reoorganiza os índices!exemplo:quero q remova da array $arr os elementos "amarelo" e "azul":$arr = array("vermelho","amarelo","azul","verde","laranja");array_splice($arr,1,1);array_splice($arr,2,1);print_r($arr);mas por causa da reoorganização de índices da array, ele acaba retirando o "amarelo" e o "azul" sei que dá para fazer assim:$arr = array("vermelho","amarelo","azul","verde","laranja");array_splice($arr,1,2);print_r($arr);mas tem q ser daquele modo (um por um) para q isso funcione sem que retire elementos desnecessários:for($r=0;$r<100;$r++){ array_splice($arr,$r,1); array_splice($brr,$r,1); array_splice($crr,$r,1);}tem algum jeito de resolver isto? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 bigodines Postado Dezembro 17, 2004 Denunciar Share Postado Dezembro 17, 2004 você quer q ele n perca os índices certo? hum.. no manual tem um coment. (pode ser besteira mas pode te dar uma luz)This function will preserve keys: <?php function my_array_splice(&$_arr, $_index, $_long){ $_keys=array_keys($_arr); $_key=array_search($_index, $_keys); if ( $_key !== FALSE ){ $_keys=array_splice($_keys, $_key, $_long); foreach ($_keys as $_key) unset($_arr[$_key]); } } ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Tito Tito Postado Dezembro 17, 2004 Autor Denunciar Share Postado Dezembro 17, 2004 valeu bigodines, deu uma luz e tanto! só queria saber pra que serve o & aqui:function my_array_splice(&$_arr, $_index, $_long){ $_keys=array_keys($_arr);...... Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tito Tito
olá gente,
meu problema não é exatamente o array_splice e sim os índices da array, pois quando uso o array_splice para remover elementos de uma array, a array reoorganiza os índices!
exemplo:
quero q remova da array $arr os elementos "amarelo" e "azul":
mas por causa da reoorganização de índices da array, ele acaba retirando o "amarelo" e o "azul"
sei que dá para fazer assim:
mas tem q ser daquele modo (um por um) para q isso funcione sem que retire elementos desnecessários:
tem algum jeito de resolver isto?
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.