Ir para conteúdo

POWERED BY:

Arquivado

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

dochipis

Imprimir item do array em primeiro

Recommended Posts

Olá gente, seguinte; no array abaixo tem um item como principal == 1, este item deverá ser o primeiro a ser imprimido na tela, depois os demais.

Array
(
    [0] => Array
        (
            [titulo] => Trend: casaco amarrado na cintura
            [foto] => 1.jpg
            [ativo] => 1
            [principal] => 0
        )
    [1] => Array
        (
            [titulo] => Katy Perry no ELLE Style Awards
            [foto] => 2.png
            [ativo] => 1
            [principal] => 1
        )
    [2] => Array
        (
            [titulo] => Playlist Valentine’s Day
            [foto] => 3.jpg
            [ativo] => 1
            [principal] => 0
        )
    [3] => Array
        (
            [titulo] => Barroco Tropical: a nova coleção da Make B.
            [foto] => 4.jpg
            [ativo] => 1
            [principal] => 0
        )
    [4] => Array
        (
            [titulo] => Frio
            [foto] => 5.jpg
            [ativo] => 1
            [principal] => 0
        )
)

Estou fazendo o loop com foreach:

foreach ($novidades as $novidade) {
 if( $novidade['principal'] == 1){
     echo('principal);
  }
 else
 {
  echo('outras');
 }			
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites


$depois = array();

 

foreach ($novidades as $novidade) {

if( $novidade['principal'] == '1'){

$antes = $novidade;

} else {

$depois[] = $novidade;

}

}

 

print_r($antes);

echo '<br />';

print_r($depois);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que existe uma maneira de fazer sem repetir o foreach?

 

claro, so usar if else no foreach... define uma variável principal e outra secundaria, na principal vc vai definindo o HTML das principais e na outra da secundaria, no final so dar echo em cada variável onde desejar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara sua sintaxe está correta, só falta uma aspas

 

$novidades = array(
    array(
        "titulo" => "Trend: casaco amarrado na cintura",
        "foto" => "1",
        "ativo" => 0,
        "principal" => 0
    ),
    array(
        "titulo" => "Trend: casaco amarrado na cintura",
        "foto" => "1",
        "ativo" => 0,
        "principal" => 1
    )
, array(
        "titulo" => "Katy Perry no ELLE Style Awards2",
        "foto" => "1",
        "ativo" => 0,
        "principal" => 0
    )
);


foreach ($novidades as $novidade) {
    if ($novidade['principal'] == 1) {
        echo('principal'); // Aqui está faltando
    } else {
        echo('outras');
    }
}

 

// Imprimiu

outras principal outras

Compartilhar este post


Link para o post
Compartilhar em outros sites

é conforme explicado no post #5... exemplo prático no #7..

 

 

off

 

no php tem uma função array_column que poderia ajudar nisso, mas, para o caso específico, recomendo o simples uso do exemplo acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os post #1 e #7 vão sempre imprimir o array em sequencia. Neles o if não cumpre sua função e te-lo não fara diferença na saída.

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.