Simplifier un code php

  • Auteur de la discussion Auteur de la discussion sff
  • Date de début Date de début
WRInaute impliqué
Bonjour, je me demande bien comment je pourrais simplifier ce bout de code php. Je pensais utiliser une boucle for(), mais j'arrive pas la mettre en oeuvre.

Quelqu'un aurait t'il une idée de simplification?

Code:
if($userrow['equip1id'] == $itemsrow['id'] OR $userrow['equip2id'] == $itemsrow['id'] OR $userrow['equip3id'] == $itemsrow['id']){
					
					$buy = 'texte 1';	     		
					
				}elseif($userrow['bag1id'] == $itemsrow['id'] OR $userrow['bag2id'] == $itemsrow['id'] OR $userrow['bag3id'] == $itemsrow['id'] OR $userrow['bag4id'] == $itemsrow['id'] OR $userrow['bag5id'] == $itemsrow['id'] OR $userrow['bag6id'] == $itemsrow['id'] OR $userrow['bag7id'] == $itemsrow['id'] OR $userrow['bag8id'] == $itemsrow['id'] OR $userrow['bag9id'] == $itemsrow['id'] OR $userrow['bag10id'] == $itemsrow['id']){
					
					$buy = 'texte2';	
					
				}else{
					
					$buy = 'texte 3';	
					
				}
 
WRInaute discret
Peut etre en utilisant un switch en php sur la valeur de $itemsrow['id'] ?
Code:
switch ($itemsrow['id'] ) {
case "$userrow['equip1id']",
case $userrow['equip2id'],
etc :
$buy = 'texte 1';
break;
$userrow['bag1id'],
$userrow['bag2id'],
etc :
$buy = 'texte2'; 
break;
default:
$buy = 'texte 3';
break;
}
 
WRInaute impliqué
suite

Comme ca tu veux dire :

Code:
switch ($itemsrow['id']) {
				case $userrow['equip1id']:
				case $userrow['equip2id']:
				case $userrow['equip3id']:
					
					$buy = 'texte ici';
					break;
					
				case $userrow['bag1id']:
				case $userrow['bag2id']:
				case $userrow['bag3id']:
				case $userrow['bag4id']:
				case $userrow['bag5id']:
				case $userrow['bag6id']:
				case $userrow['bag7id']:
				case $userrow['bag8id']:
				case $userrow['bag9id']:
				case $userrow['bag10id']:
					
					$buy = 'texte ici';	
					break;
					
				default:
					$buy = 'texte ici';
					break;
				}

Il y a pas possibilité de faire encore plus simple?
 
WRInaute accro
essaye avec le in_array suggerer par seebz : (jamais testé)

Code:
  for ($i=1;$i<=3;$i++)  { $tab_1[] = $userrow['equip'.$i.''.'id']; }
  $trans_id = $itemsrow['id'];
  if (in_array($trans_id,$tab_1) $buy = 'texte 1';

  for ($i=2;$i<=10;$i++)  { $tab_2[] = $userrow['bag'.$i.''.'id']; }
  $trans_id = $itemsrow['id'];
  if (in_array($trans_id,$tab_2) $buy = 'texte 2';
 
Discussions similaires
Haut