2017-08-17 2 views
1

$ je besoin d'un court if/else en PHP pour comparer deux chaînes en pour cent:

if ($sum['cur'] 70% of $sum['max']) { 
    print ("Attention"); 
} else { 
    print ("OK"); 
}; 

$sum['cur'] et $sum['max'] sont des nombres. Par exemple, si $sum['max']=100 et $sum['cur']=80, je voudrais imprimer un avertissement que 80% sont en cours d'utilisation.

+0

Voulez-vous exactement 80% seulement, ou supérieur ou égal à 80%? –

Répondre

3

En supposant que $sum['cur'] et $sum['max'] sont numériques, peu importe qu'il s'agisse de chaînes numériques ou de nombres réels. PHP va automatiquement les convertir au type nécessaire lorsque vous essayez de faire des opérations mathématiques sur eux ou les comparer à des chiffres.

$percentage = 0.7; 

if ($sum['cur']/$sum['max'] >= $percentage) { 
    print ("Attention"); 
} else { 
    print ("OK"); 
}; 

Si vous devez afficher le pourcentage réel, vous pouvez le calculer à l'avance plutôt que dans la condition pour qu'il puisse être utilisé dans le message imprimé. Puisque vous faites la division, vous pouvez vous retrouver avec une longue partie décimale dans le résultat. Vous pouvez utiliser printf pour le formater selon vos besoins.

$threshold = 70; 

$percentage = $sum['cur']/$sum['max'] * 100; 

if ($percentage >= $threshold) { 
    printf("Attention: %d%% percent are in use", $percentage); 
} else { 
    echo "OK"; 
};