Jump to content


Photo

Dúvida Com Array();


  • Faça o login para participar
7 replies to this topic

#1 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 27/06/2008, 08:39

Acho que isso é beem simples.. deve existir uma função nativa que faça isso... a dúvida é qual?

Pois bem, tenho dois Array();
$a = Array();
$b = Array();
$a sempre será maior que $b, e todos os itens de $b está dentro de $a:
$a = Array("nome1","nome2","nome3","nao segue ordem","pode ser qq coisa","nome5","nome7");
$b = Array("nome2","nome3","nome7","nao segue ordem");

Agora vem o problema: como eu separo ($c) os itens de $a, que não estão em $b ?
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#2 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 27/06/2008, 08:59

Acho que com a combinação array_merge() e array_unique() você consegue. :)
* Falei besteira, já já trago a solução.

Agora sim, tenta ai:

<?php

$a = array("nome1","nome2","nome3",
			"nao segue ordem","pode ser qq coisa",
			"nome5","nome7");

$b = array("nome2","nome3","nome7","nao segue ordem");

$c = array();

foreach($a as $val)
{
	if( !in_array($val, $b) )
	{
		array_push($c, $val);
	}
}

print_r($c);

?>

Flws...
(y)Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#3 Falci

Falci

    12 Horas

  • Usuários
  • 187 posts
  • Sexo:Masculino
  • Localidade:Brasil

Posted 27/06/2008, 09:45

Obrigado...

Agora fiquei curioso: qual a diferença de array_push($c, $val); e $c[]=$val ?
<?php /* falci at Falci.me */

$naoAcrediroQueEuFizUmaVariavelTaoGrandeSoParaGuardarUmTres = 3;
?>

#4 Paulo André

Paulo André

    Why so serious?

  • Ex-Admins
  • 5114 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG
  • Interesses:O.Q.F.J.?

Posted 27/06/2008, 09:48

Na verdade é um vício meu. :huh:

É melhor usar desta outra maneira mesmo que você citou porque não há uma chamada de função, como diz o manual.

(ok2) Até mais
Paulo André G Rodrigues,
ex-administrador Fórum WMO.


www.CanalDev.com.br

#5 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 27/06/2008, 21:37

Não precisa de tudo isso.

Veja : http://br.php.net/ma...-diff-assoc.php

#6 marciovmartins

marciovmartins

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 28/06/2008, 00:10

Neste caso ele precisa é do array_diff, pois o array_diff_assoc compara a chave também...

no caso ele só quer comparação do valor.

vejam:
http://br.php.net/ma....array-diff.php
http://br.php.net/ma...-diff-assoc.php

#7 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 28/06/2008, 12:47

Não precisa de tudo isso.

Veja : http://br.php.net/ma...-diff-assoc.php


Neste caso ele precisa é do array_diff, pois o array_diff_assoc compara a chave também...

no caso ele só quer comparação do valor.

vejam:
http://br.php.net/ma....array-diff.php
http://br.php.net/ma...-diff-assoc.php



Mas vejam que nas funções nativas, as chaves retornadas vem de acordo com os arrays principais.
Vejam:

Array
(
	[0] => nome1
	[4] => pode ser qq coisa
	[5] => nome5
)

Já na do Paulo André, é gerada uma nova chave para cada registro.

Array
(
	[0] => nome1
	[1] => pode ser qq coisa
	[2] => nome5
)

Eu usaria a do Paulo André.
Até mais ^_^

Edição feita por: _Dudu_1533, 28/06/2008, 12:54.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#8 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 29/06/2008, 23:45

Não precisa de tudo isso.

Veja : http://br.php.net/ma...-diff-assoc.php


Neste caso ele precisa é do array_diff, pois o array_diff_assoc compara a chave também...

no caso ele só quer comparação do valor.

vejam:
http://br.php.net/ma....array-diff.php
http://br.php.net/ma...-diff-assoc.php



Mas vejam que nas funções nativas, as chaves retornadas vem de acordo com os arrays principais.
Vejam:

Array
(
	[0] => nome1
	[4] => pode ser qq coisa
	[5] => nome5
)

Já na do Paulo André, é gerada uma nova chave para cada registro.

Array
(
	[0] => nome1
	[1] => pode ser qq coisa
	[2] => nome5
)

Eu usaria a do Paulo André.
Até mais ^_^


Se isso é um problema é só usar array_values() no array que ele fica ordenado.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq