Olá, pessoal.
Eu uso intensamente a busca do fórum e tentei várias formas de deletar um índice de um array, mas o que eu gostaria de fazer é um pouco diferente...
Por exemplo:
$array = array('eu', 'tu', 'ele');
$palavra = 'ele';
function deletaIndice { }
// a função deleta o índice que é igual a 'ele' e me retorna um array com os índices restantes sem o índice deletado como 0 ou null, mas como um novo array com índices ('eu', 'tu')
Eu não sei se eu fui claro...
Obrigado pela atenção!
Um abraço a todos!
Excluir Dado De Um Array
Started By Yendis, 02/07/2007, 22:51
4 replies to this topic
#1
Posted 02/07/2007, 22:51
#2
Posted 02/07/2007, 23:13
Bem pensado pouco e rapidamente me veio a função "array_filter", e fiz isso, mas acredito que de para melhorar ... de qualquer forma fica o exemplo básico:
<?php $palavra = "ele"; $array = array("eu", "tu", "ele"); function deletaIndice($var) { global $palavra; return ($var != $palavra); } print_r(array_filter($array, "deletaIndice")); ?>
Edição feita por: sk15, 02/07/2007, 23:16.
#3
Posted 02/07/2007, 23:57
Fala, sk15!
Obrigadão pela resposta. Ela retorna o array sem o que eu queria mesmo, mas toda vez que eu tento percorrer o array resultante ($links) com o code:
for ($i=0;$i<count($links);$i++) {
?>
<a href="galeria.php?galeria=<?= $links[$i]?>&language=<?= $language?>"><img src="../../img/link_<?= $links[$i]?>.gif" border="0" /></a>
<? } ?>
Ela acaba me retornando um índice vazio e sem imagem.
O que que vc acha que eu posso fazer?
Foi mal sk15, eu estava cometendo um erro quando eu fazia a iteração no array, eu deveria ter usado o foreach já que os índices não são seqüenciais.
Muito obrigado pela resposta!
Um abraço!
Obrigadão pela resposta. Ela retorna o array sem o que eu queria mesmo, mas toda vez que eu tento percorrer o array resultante ($links) com o code:
for ($i=0;$i<count($links);$i++) {
?>
<a href="galeria.php?galeria=<?= $links[$i]?>&language=<?= $language?>"><img src="../../img/link_<?= $links[$i]?>.gif" border="0" /></a>
<? } ?>
Ela acaba me retornando um índice vazio e sem imagem.
O que que vc acha que eu posso fazer?
Foi mal sk15, eu estava cometendo um erro quando eu fazia a iteração no array, eu deveria ter usado o foreach já que os índices não são seqüenciais.
Muito obrigado pela resposta!
Um abraço!
#4
Posted 03/07/2007, 00:15
Bem pensei que vc queria filtar de alguma forma usando uma função emulada, e tals acho que compliquei mais do que deveria ... o mais elaborado nem sempre é o melhor ...
Como vc quer retornar em ordem do "0 até X", somente retirando o valor indesejado acho que seria interresante fazer uma função propria para retirar o elemento indesejado ... veja um exemplo:
Como vc quer retornar em ordem do "0 até X", somente retirando o valor indesejado acho que seria interresante fazer uma função propria para retirar o elemento indesejado ... veja um exemplo:
<?php function deletaIndice($array, $deletar) { $novo_array = array(); foreach ($array as $valor) { if ($valor != $deletar) { $novo_array[] = $valor; } } return $novo_array; } $palavra = "eu"; $array = array("eu", "tu", "ele"); $meu_array = deletaIndice($array, $palavra); print_r($meu_array); ?>
Edição feita por: sk15, 03/07/2007, 00:16.
#5
Posted 03/07/2007, 09:46
assim deve dar certo:
na verdade nao vai soh imprimir o array sem o valor "ele", vai excluir a chave e o valor do array... ^^'
espero ter ajudado
Hellp
$x = array("eu", "tu", "ele", "nos", "vos", "eles"); $excl = "ele"; print_r($x); // imprime todo o array foreach($x as $c => $v) { if($v == $excl) { unset($x[$c]); } } print_r($x); // imprime todo o array menos o "ele"
na verdade nao vai soh imprimir o array sem o valor "ele", vai excluir a chave e o valor do array... ^^'
espero ter ajudado
Hellp
Edição feita por: Hellp, 03/07/2007, 09:49.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)