如何构建具有许多具有相同名称模式的变量的表达式?
P粉310931198
P粉310931198 2023-09-16 11:26:25
0
1
654

我的系统脚本中有 50 个变量。 所有这些都具有相同的命名方式,例如:

$case_un
$case_deux
$case_trois
...
$case_fourthy

我需要用所有这些变量构建一个表达式,而无需编写 50 个变量名称的代码!

由于我所有的变量名称都以“case_”模式开头,是否有语法可以对它们求和或另一个表达式?

我需要执行这样的事情:

$test_of_cases = $case_un && $case_deux && $case_trois && ...........$case_fourthy ;

还有那件事:

$total_of_sums = $sum_un + $sum_deux + ............$sum_fifthy ;

那么,有没有办法用 PHP 进行编码呢? 在正式语言中,我只需要对名称以 'case_' 开头的所有变量求和即可。

我的 50 个变量无法存储在数组中,因为它们来自不同的源和表达式结果。

我不确定,但我认为有一种表达方式可以用其他语言来执行此操作:

LET a=SUM (`*case_*`)
    LET b=XOR (`*case_*`)
    LET c=AND (`*case_*`)

我在30年前的学习中了解到这一点......

我希望 PHP 也能做到这一点,否则不行,我得写 50 行代码!

致以诚挚的问候

P粉310931198
P粉310931198

全部回复(1)
P粉956441054

假设你有一个这样的数组

$arr = [
    'people_physic_eyes' => 1,
    'people_physic_weight' => 2,
    ...
    'name' => 'james',
    'age' => 15,
    ...
];

您想要对键名以“people_physical_”开头的所有值求和,有很多方法可以实现这一点,这里是一个使用 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
);

但这效率不高,因为您必须在每次调用时比较所有键。

热门教程
더>
最新下载
더>
网站特效
网站源码
网站素材
프론트엔드 템플릿
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!