Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menjumlahkan Nilai Lajur Tatasusunan 2D dalam PHP tanpa Gelung `foreach`?

Bagaimana untuk Menjumlahkan Nilai Lajur Tatasusunan 2D dalam PHP tanpa Gelung `foreach`?

Linda Hamilton
Linda Hamiltonasal
2024-12-13 12:08:11577semak imbas

How to Sum a 2D Array Column's Values in PHP without `foreach` Loops?

Menjumlahkan Nilai dalam Lajur Tatasusunan 2D tanpa Gelung Foreach

Dalam PHP 5.4, adalah mungkin untuk menjumlahkan nilai dalam lajur tertentu bagi Tatasusunan 2D tanpa menggunakan gelung foreach.

Pertimbangkan perkara berikut tatasusunan berbilang dimensi:

Array (
    [0] => Array ( [f_count] => 1 [uid] => 105 )
    [1] => Array ( [f_count] => 0 [uid] => 106 )
    [2] => Array ( [f_count] => 2 [uid] => 107 )
    [3] => Array ( [f_count] => 0 [uid] => 108 )
    [4] => Array ( [f_count] => 1 [uid] => 109 )
    [5] => Array ( [f_count] => 0 [uid] => 110 )
    [6] => Array ( [f_count] => 3 [uid] => 111 )
)

Untuk menjumlahkan nilai dalam lajur "f_count", kita boleh menggunakan fungsi array_column dan array_sum:

$value = array_sum(array_column($arr,'f_count'));

Kaedah ini mengekstrak nilai "f_count" daripada tatasusunan ke dalam tatasusunan satu dimensi menggunakan lajur_tatasusunan, dan kemudian menjumlahkan nilai dalam tatasusunan itu menggunakan tatasusunan_sum, menghasilkan nilai jumlah 7.

Sebagai alternatif, jika anda lebih suka format pertanyaan SQL yang berbeza, anda boleh mengubah suai pertanyaan anda untuk mengembalikan tatasusunan satu dimensi:

$query = "SELECT SUM(f_count) AS f_count_sum FROM users WHERE gid=:gid";
...
$value = $stmt->fetchColumn();

Pertanyaan ini mengembalikan satu lajur bernama "f_count_sum" yang mengandungi jumlah semua nilai "f_count", yang kemudiannya boleh diakses terus menggunakan fetchColumn().

Atas ialah kandungan terperinci Bagaimana untuk Menjumlahkan Nilai Lajur Tatasusunan 2D dalam PHP tanpa Gelung `foreach`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn