Maison > Questions et réponses > le corps du texte
J'ai 50 variables dans mon script système. Tous ont le même schéma de dénomination, par exemple :
$case_un $case_deux $case_trois ... $case_fourthy
J'ai besoin de construire une expression avec toutes ces variables sans avoir à coder 50 noms de variables !
Étant donné que tous mes noms de variables commencent par le modèle « case_ », existe-t-il une syntaxe pour les additionner ou une autre expression ?
Je dois exécuter quelque chose comme ceci :
$test_of_cases = $case_un && $case_deux && $case_trois && ...........$case_fourthy ;
Et ce truc :
$total_of_sums = $sum_un + $sum_deux + ............$sum_fifthy ;
Alors, existe-t-il un moyen de coder en PHP ? En langage formel, j'ai juste besoin de additionner toutes les variables dont les noms commencent par « case_ ».
Mes 50 variables ne peuvent pas être stockées dans un tableau car elles proviennent de sources et de résultats d'expression différents.
Je ne suis pas sûr, mais je pense qu'il existe une expression pour faire cela dans d'autres langues :
LET a=SUM (`*case_*`) LET b=XOR (`*case_*`) LET c=AND (`*case_*`)
J'ai appris cela pendant mes études il y a 30 ans...
J'aimerais que PHP puisse faire ça aussi, sinon non, je devrais écrire 50 lignes de code !
Sincères salutations
P粉9564410542023-09-17 00:10:34
Supposons que vous ayez un tableau comme celui-ci
$arr = [ 'people_physic_eyes' => 1, 'people_physic_weight' => 2, ... 'name' => 'james', 'age' => 15, ... ];
Vous souhaitez additionner toutes les valeurs dont le nom de clé commence par "people_physical_", il existe de nombreuses façons d'y parvenir, en voici une en utilisant array_reduce
:
$sum = array_reduce( array_keys($arr), function ($sum, $key) use ($arr) { # if the key starts with 'people_physic_', sum up the value return strpos($key, 'people_physic_') === 0 ? $sum + $arr[$key] : $sum; }, 0 );
Mais ce n'est pas efficace car vous devez comparer toutes les clés à chaque appel.