Bagaimana untuk membina ungkapan dengan banyak pembolehubah dengan corak nama yang sama?
P粉310931198
P粉310931198 2023-09-16 11:26:25
0
1
816

Saya mempunyai 50 pembolehubah dalam skrip sistem saya. Kesemuanya mempunyai skema penamaan yang sama, contohnya:

$case_un
$case_deux
$case_trois
...
$case_fourthy

Saya perlu membina ungkapan dengan semua pembolehubah ini tanpa perlu kod 50 nama pembolehubah!

Memandangkan semua nama pembolehubah saya bermula dengan corak "case_", adakah sintaks untuk menjumlahkannya atau ungkapan lain?

Saya perlu melaksanakan sesuatu seperti ini:

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

Dan perkara itu:

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

Jadi, adakah cara untuk membuat kod dalam PHP? Dalam bahasa formal saya hanya perlu menjumlahkan semua pembolehubah yang namanya bermula dengan 'case_'.

50 pembolehubah saya tidak boleh disimpan dalam tatasusunan kerana ia datang daripada sumber dan hasil ekspresi yang berbeza.

Saya tidak pasti, tetapi saya rasa ada ungkapan untuk melakukan ini dalam bahasa lain:

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

Saya belajar ini dalam pengajian saya 30 tahun lalu...

Saya harap PHP boleh melakukan ini juga, jika tidak, tidak dan saya perlu menulis 50 baris kod!

Salam hormat

P粉310931198
P粉310931198

membalas semua(1)
P粉956441054

Andaikan anda mempunyai tatasusunan seperti ini

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

Anda ingin menjumlahkan semua nilai yang nama utamanya bermula dengan "people_physical_", terdapat banyak cara untuk mencapai ini, berikut adalah satu menggunakan 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
);

Tetapi ini tidak cekap kerana anda perlu membandingkan semua kekunci pada setiap panggilan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan