Ir para conteúdo

POWERED BY:

Arquivado

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

André Severino

Exercícios sobre Arrays

Recommended Posts

Nada que um if não resolva amigo André

 

Eu partiria por outro caminho:

 

<?php
$hora1 = 10;
$hora2 = 12;

print_r( range( $hora1 , $hora2 ) );

$hora1 = 20;
$hora2 = 1;

print_r( array_map( function( $h ){ return $h % 24; } , range( $hora1 , $hora2 + ( $hora2 < $hora1 ? 24 : 0 ) ) ) );

$hora1 = 22;
$hora2 = 14;

print_r( array_map( function( $h ){ return $h % 24; } , range( $hora1 , $hora2 + ( $hora2 < $hora1 ? 24 : 0 ) ) ) );

 

Saída:

 

Array
(
[0] => 10
[1] => 11
[2] => 12
)
Array
(
[0] => 20
[1] => 21
[2] => 22
[3] => 23
[4] => 0
[5] => 1
)
Array
(
[0] => 22
[1] => 23
[2] => 0
[3] => 1
[4] => 2
[5] => 3
[6] => 4
[7] => 5
[8] => 6
[9] => 7
[10] => 8
[11] => 9
[12] => 10
[13] => 11
[14] => 12
[15] => 13
[16] => 14
)

 

:seta: range()

:seta: array_map()

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aproveitando a onda dos exercícios, uma coisa que sempre quis saber se é possível, é verificar se um array está dentro de outro, sem loops dentro de loops, recursão e etc porém condicionando com qualquer um dos valores.

 

Não que eu vá usar esse troço, mas já que é pra maximizar o conhecimento que se tem sobre arrays... ^_^

 

Tipo:

 

$master = array (
 0 => 
 array (
   'param1' => 'value1',
   'param2' => 'value2',
   'param3' => 'value3',
   'param4' => 'value4'
 )
);

 

Daí, antes de adicionar o novo valor, verificaria se o mesmo já não está presente no primeiro:

 

// Impediria

$new1 = array (
 'param1' => 'value1',
 'param2' => 'value2',
 'param3' => 'value3',
 'param4' => 'value4'
);

// Liberaria

$new2 = array (
 'param1' => 'X',
 'param2' => 'Y',
 'param3' => 'Z',
 'param4' => 'XYZ'
);

Isso porque:

 

var_dump( in_array( $new1, $master ), in_array( $new2, $master ) );

Retornaria, respectivamente, TRUE e FALSE.

 

Se TRUE, bloquear-se-ia a inclusão. Se FALSE, permitir-se-ia.

 

Mas se um dos índices do arrays que foi anteriormente barrado fosse ligeiramente alterado, digamos value4 passar a ser fourthValue, a permissão seria concedida (pois retornaria FALSE) e o item poderia fazer parte de $master.

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.