Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

regina

Unir e ordenar 2 array

Recommended Posts

Bom dia!

 

Tenho duas fontes de dados que me fornecem arrays parecidos com estes exemplos abaixo, acontece que preciso unir as duas fontes de array e depois ordená-las alfabeticamente.

 

Rio de Janeiro [agencia] => Rio de Janeiro [1] => 19 [codigo] => 4 [2] => Belo Horizonte [unidade] => Belo Horizonte [3] => 4

$linha=mysql_fetch_array($sql);
		$linha2=mysql_fetch_array($sql2);
		$result=array_merge($linha, $linha2);
Preciso que venha apareça em ordem alfabética de agencia/unidade. Como faço isso?

 

Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Clique aqui

 

dá uma olhada no array_merge() e em sort() tem mais funções de ordenação, veja qual atende sua necessidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

admito que tive problemas tentando ordenar array tb. não teria como unir suas consultas e ordenar por SQL?

 

ainda posso tentar te ajudar com isso, se não outro vai ter que te dar uma mão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá Victor Cometti e EuToComProblema!

 

Agradeço a atenção de vocês,

 

dei uma parada neste módulo para desenvolver outros, agora estou retornando e ainda não consegui, vou postar as tabelas como estão:

 

--
-- Estrutura da tabela `tb_agencias`
--

CREATE TABLE IF NOT EXISTS `tb_agencias` (
  `agencia_id` int(1) NOT NULL AUTO_INCREMENT,
  `codigo` int(5) NOT NULL,
  `agencia` varchar(50) NOT NULL,
  `informacoes` text,
  `responsavel` varchar(50) NOT NULL,
  `agente` varchar(50) NOT NULL,
  `status` enum('ativo','inativo') NOT NULL,
  PRIMARY KEY (`agencia_id`),
  UNIQUE KEY `codigo` (`codigo`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 PACK_KEYS=0 AUTO_INCREMENT=13 ;

-- --------------------------------------------------------

--
-- Estrutura da tabela `tb_unidades`
--

CREATE TABLE IF NOT EXISTS `tb_unidades` (
  `unidade_id` int(6) NOT NULL AUTO_INCREMENT,
  `codigo` int(5) NOT NULL,
  `unidade` varchar(55) NOT NULL,
  `descricao` text NOT NULL,
  `endereco` varchar(250) NOT NULL,
  `documento` varchar(100) DEFAULT NULL,
  `chamada` varchar(100) DEFAULT NULL,
  `status` enum('sim','nao') NOT NULL DEFAULT 'sim',
  PRIMARY KEY (`unidade_id`),
  KEY `categoria` (`unidade`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 PACK_KEYS=0 COMMENT='Unidades' AUTO_INCREMENT=20 ;

1) no select estou utilizando o UNION

<?php $sql=mysql_query("SELECT agencia,codigo FROM tb_agencias WHERE status='ativo'
		   UNION
		   SELECT unidade,codigo FROM tb_unidades WHERE status='sim'
		   ORDER BY agencia ASC, tb_unidades.unidade ASC") or die (mysql_error());
?>	<label class="campo" for="agencia">Agência <strong title="Requirido" class="requirido">*</strong><select name="agencia" id="agencia" tabindex="3" title="Agência">
	<option value="0">Selecione uma agência.</option>
<?php	while($linha=mysql_fetch_array($sql)){
		print "<option title=\"Agência\" value=\"".$linha["codigo"]."\">".$linha["agencia"]."</option>";
	}?> </select></label>

2) Dentro do resultado vou ter um registro com o valor "Sede Central" neste vou precisar substituir por "Capital" e ordená-lo em ordem alfabética como se o registro do banco possuísse este valor, pergunto: É possível?

 

Desde já agradeço

 

regina

Compartilhar este post


Link para o post
Compartilhar em outros sites

em relação a sua busca em 2 tabelas n intendi mtu.

em relação a outra duvida, você pode substituir na query msm como exemplo

select if (agencia = 'Sede Central','Capital',agencia) as agencia,codigo from tb_agencias

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho 2 tabelas que são utilizadas juntas em um determinado momento.

A tb_agencias contém correspondentes - representantes

já a tb_unidades contém, digamos assim, filiais.

 

Em um determinado momento preciso listar os correspondentes e as filiais juntas, se possível em ordem alfabética, em uma tabela o campo é agencia e na outra unidade.

 

Está listando só não consigo colocar os campos tb_agencias.agencia e tb_unidades.unidade em ordem alfabética ASC.

 

Grata pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe essa necessidade, pois são situações distintas:

Eles chamam de agências a região onde só possuem uma pessoa para contato, como um representante e de unidade onde eles têm instalações próprias, com funcionários da empresa.

 

Também levei um tempinho para entender o porque de 2 tabelas, no sistema administrativo deles é assim e eu mantive, pois existem dados em uma tabela que são desnecessários para a outra e vice-versa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola , estou com o mesmo probrema.. mas nao posso utilizar UNION.

 

tenho duas tabelas contas_a_pagar e contas_a_receber:

 

tabela-pagar

1 | 12/12/2013 | blablabla | 100,00

2 | 12/12/2013 | blablabla | 100,00

 

tabela-receber

1 | 09/12/2013 | ioioi | 350,00

 

 

no resultado tá aparecendo assim:

 

1 | 12/12/2013 | blablabla | 100,00

1 | 09/12/2013 | ioioi | 350,00

2 | 12/12/2013 | blablabla | 100,00

 

porem nao posso usar union, pq estou utilizando 2 fetch_array

 

while($row2 = mysql_fetch_array($result2) and $row3 = mysql_fetch_array($result3)){

 

para poder fazer a continha do contas a pagar X receber.

 

queria ordenar por data as duas tabelas...

 

fui claro?

 

obrigado

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.