Array dans condition if (php)

[Fermé]
Signaler
Messages postés
54
Date d'inscription
dimanche 27 avril 2008
Statut
Membre
Dernière intervention
13 août 2012
-
Messages postés
54
Date d'inscription
dimanche 27 avril 2008
Statut
Membre
Dernière intervention
13 août 2012
-
Bonjour,

je suis entrein d'alleger code dans un script. j'ai comencé par PDO ET 9A marche bien
bref j'ai array qui contien list jours feriés apres select dans mysql
$requete_prepare_1=$connexion->prepare(" SELECT to_days('$variable_annee-01-01') as premier_janvier,to_days('$variable_annee-05-08') as victoire ,
to_days('$variable_annee-07-14') as fete_juillet , to_days('$variable_annee-11-11') as Armistice
from atm_2008"); // on prépare notre requête

$requete_prepare_1->execute();
$lignes=$requete_prepare_1->fetch(PDO::FETCH_OBJ);
$premier_janvier=$lignes->premier_janvier;
$victoire=$lignes->victoire;
$fete_juillet=$lignes->fete_juillet;
$Armistice=$lignes->Armistice;

$feries = array("$premier_janvier", "$victoire", "$fete_juillet", "$Armistice");

puis je dos calculer nombre jour total dans chaque semaine de lundi au samedi:

for( $i=1; $i<53; $i++ )
$nbrJours7[ ] = 0;

foreach ($result as $row)
{


$agent1 = $row['SAR'];
$semaine1 = $row['wDebut'];
$jourSemaine1 = $row['wsDebut']; // dimanche = 1
$jourDebut1 = $row['dDebut'];
$jourFin1 = $row['dFin'];



for( $jour1 = $jourDebut1; $jour1 <= $jourFin1; $jour1++ )
{

if( $jourSemaine1 > 1 AND $jourSemaine1 <=7 )
$nbrJours7[ $semaine1]++;
$jourSemaine1++;
if( $jourSemaine1 > 7 )

{

$semaine1++; $jourSemaine1 = 1;

}
}




}

tous martche bien
il reste dans condition if( $jourSemaine1 > 1 AND $jourSemaine1 <=7 ) j'ajoute AND $jour1!=$feries[0]
bien sur il va pas compter 1 janvier mais la je dois metrre 4 fois AND .
vu que je repete cette boucle 6 foix suivant 6 cas ça sera un peu lourd
j'ai essayé cette fonction mais lors de l'appelle de cette fonction rien ça marche et àa élémine pas jours fériés

<?php

function liste_tableau($tableau)
{
while(list($key,$valeur)=each($tableau))
{
return $valeur;

}
}
$feries = array("$premier_janvier", "$victoire", "$fete_juillet", "$Armistice");
donc si j'ajoute cette fonction a condition if
if( $jourSemaine1 > 1 AND $jourSemaine1 <=7 AND $jour1!= liste_tableau($feries))

il compte jours féries or ça doit eléminer jours fériés de calcul

?>
merçin d'avance pour votre aide

2 réponses

Messages postés
664
Date d'inscription
mercredi 7 mai 2008
Statut
Membre
Dernière intervention
1 novembre 2008
90
Bonjour.

Connais-tu la fonction in_array ?
Extrait de la doc PHP :
boolean in_array(mixed needle ,array haystack ,[boolean strict ])

in_array recherche needle dans haystack et retourne TRUE s'il s'y trouve, ou FALSE sinon.

Le troisième paramètre strict est optionnel. S'il vaut TRUE alors in_array vérifiera aussi que le types du paramètre needle correspond à la valeur trouvée dans haystack.

Exemple avec in_array


<?php
  $os = array("Mac", "NT", "Irix", "Linux");
  if (in_array("Irix", $os))
       print "Irix trouve";
?>


Ca m'a tout l'air d'être pile-poil ce que tu cherches...
Messages postés
54
Date d'inscription
dimanche 27 avril 2008
Statut
Membre
Dernière intervention
13 août 2012
9
merçi de m'avoir répondu

j'ai essayé cette fonction mais aucun résultat

en fete imagine j'ai 7 jour dans cete semaine dons si j'ajoute cette fonction dans cete condition
if( $jourSemaine1 > 1 AND $jourSemaine1 <=7 ) j'ajoute AND $jour1!=$feries()
avec 2 jours feries en array donc j'aurais 5 jours
comme je t'ai dis si je fais feries[0] il va pas prendre 1 valeur dans la tableau mais comme je suis entrein d'alleger mon code je veux pas mettre 50 AND dans if