Ir para conteúdo

Arquivado

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

donizeti.junior.ferraz

Como ordenar conteúdo de array multidimensional

Recommended Posts

Olá, Bom dia/tarde/noite

 

Tenho uma array com o conteúdo de uma query no Mysql que exibe os produtos de um site, a array está assim:

Array ( 
[0] => Array ( 
[post_name] => nome-do-ar-condicionado-9.000-bth-u
[post_title] => Nome do Ar Condicionado 9.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img1.png 
)

[1] => Array ( 
[post_name] => nome-do-ar-condicionado-7.000-bth-u
[post_title] => Nome do Ar Condicionado 7.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img2.png 
)

[2] => Array ( 
[post_name] => nome-do-ar-condicionado-12.000-bth-u
[post_title] => Nome do Ar Condicionado 12.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img3.png 
)
)

O meu problema é a ordem que os registros estão na array. Eu precisava ordenar os registros na array pela potência do produto do menor para o maior, assim:

Array ( 
[0] => Array ( 
[post_name] => nome-do-ar-condicionado-7.000-bth-u
[post_title] => Nome do Ar Condicionado 7.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img2.png 
)

[1] => Array ( 
[post_name] => nome-do-ar-condicionado-9.000-bth-u
[post_title] => Nome do Ar Condicionado 9.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img1.png 
)

[2] => Array ( 
[post_name] => nome-do-ar-condicionado-12.000-bth-u
[post_title] => Nome do Ar Condicionado 12.000 BTH/u
[img] => http://site.com/wp-content/uploads/2015/09/img3.png 
)
)

Alguma ideia? :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Bom dia/tarde/noite

 

Tenho uma array com o conteúdo de uma query no Mysql

Você disse que o conteúdo vem do banco... não existe uma coluna para cada informação? Como estão salvos os dados então?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O conteúdo da query está dividido em várias tabelas, em uma apenas com o conteúdo dividido em dois registros, já em outra a associação do produto com a categoria (que seria a potência do produto)

 

Como eu estava com dificuldade de fazer a consulta como queria, pensei que seria mais fácil apenas trazer os registros e depois ordenar com o php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok,

 

Tenho uma tabela wp_term_relationships onde é associado o ID do produto com o ID da categoria que ele está, então eu vou nessa tabela e por uma categoria que é a marca do produto, eu recolho todos os produtos associas a ela.

 

Já na tabela dos produtos wp_posts eu busco todos os produtos com os IDs pegos anteriormente.

 

O problema é que a busca inicialmente é feita por Marca do produto não por potência, assim ele vem todos os produtos independente da potência. E na tabela do produto não existe nenhuma referência a potência, só na tabela wp_term_relationships

 

A query onde busco o ID dos produtos:

SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = '$id_marca'

Com os IDs dos produtos, eu faço a busca:

SELECT post_title, post_name FROM wp_posts WHERE ID IN ($ids_posts) AND post_type = 'wpsc-product' ORDER BY ID ASC

Compartilhar este post


Link para o post
Compartilhar em outros sites

não da pra fazer só uma consulta não?

 

 

Ei... a potencia do ar está salva no titulo e na descrição é? Se for, melhor separar logo isso cara...

 

 

 

 

 

ALTER TABLE nome_tabela ADD potencia int(11) AFTER coluna

Compartilhar este post


Link para o post
Compartilhar em outros sites

cria esse campo na tabela que contem a descrição e titulos.

 

Depois vc roda um script pra buscar somente os numeros da string e salvar na nova coluna...

 

 

<?php 
 
 
 
$string = "nome-do-ar-condicionado-9.000-bth-u";
 
echo $string."<br/>";
 
$string2 = preg_replace("/[^0-9]/","",$string);
echo $string2;
 
 ?>

 

Mais ou menos assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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