Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
)
)foreach ($novidades as $novidade) {
if( $novidade['principal'] == 1){
echo('principal);
}
else
{
echo('outras');
}
}Será que existe uma maneira de fazer sem repetir o foreach?
$depois = array();
foreach ($novidades as $novidade) {
if( $novidade['principal'] == '1'){
$antes = $novidade;
} else {
$depois[] = $novidade;
}
}
print_r($antes);
echo '<br />';
print_r($depois);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...
Você pode usar o array_multisort, mas de qualquer forma, vai ter que repetir.
Mas, eu aproveitaria e colocaria em uma função/helper.
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
) "ativo" => 0,
"principal" => 0
)
);
foreach ($novidades as $novidade) {
if ($novidade['principal'] == 1) {
echo('principal'); // Aqui está faltando
} else {
echo('outras');
}
}
// Imprimiu
outras principal outras
é 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.
Isso vem de uma fonte de dados onde você possa ordenar pela coluna principal???
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.
#10... sim, no #7 teria que guardar os resultados em variáveis e escrevê-las posteriormente
Ok, galera. Obrigado.
Tenta Assim: