Comment construire une expression avec plusieurs variables avec le même modèle de nom ?
P粉310931198
P粉310931198 2023-09-16 11:26:25
0
1
845

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粉310931198
P粉310931198

répondre à tous(1)
P粉956441054

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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal