在PHP中,對一個陣列的某一列求和是一個常見的需求。如果該數組是一維數組,使用array_sum()函數即可實現。例如:
$array = array(1, 2, 3, 4, 5); $sum = array_sum($array); // $sum = 15
但如果該數組是二維數組,則需要先提取該列的所有值,然後再將它們求和。可以使用array_column()函數來提取某一列的值,然後再使用array_sum()函數對這些值進行求和。例如:
$records = array( array('name' => 'John', 'score' => 85), array('name' => 'Mary', 'score' => 92), array('name' => 'Peter', 'score' => 78), array('name' => 'Lisa', 'score' => 89) ); $scores = array_column($records, 'score'); $sum = array_sum($scores); // $sum = 344
在上面的例子中,$records是一個二維數組,包含了每個人的姓名和分數。使用array_column()函數提取所有的分數,然後使用array_sum()函數對它們進行求和,得到了總分344。
需要注意的是,如果該列的值中包含了非數字類型(例如字串),則需要先透過型別轉換將它們轉換成數字。否則,求和的結果可能會不準確。例如:
$records = array( array('name' => 'John', 'score' => '85'), array('name' => 'Mary', 'score' => '92'), array('name' => 'Peter', 'score' => '78'), array('name' => 'Lisa', 'score' => '89') ); $scores = array_column($records, 'score'); $sum = array_sum($scores); // $sum = 0
在上面的例子中,$records中的分數都是字串型別。如果直接對它們進行求和,會得到一個不準確的結果0。可以透過在array_column()函數中指定第三個參數將它們轉換成數字類型。例如:
$records = array( array('name' => 'John', 'score' => '85'), array('name' => 'Mary', 'score' => '92'), array('name' => 'Peter', 'score' => '78'), array('name' => 'Lisa', 'score' => '89') ); $scores = array_column($records, 'score', 'name'); $scores = array_map('intval', $scores); $sum = array_sum($scores); // $sum = 344
在上面的範例中,使用array_column()函數提取出了每個人的分數,並將它們儲存在一個以姓名為鍵、分數為值的新陣列中。然後使用array_map()函數對這些值進行類型轉換,最後再使用array_sum()函數對它們進行求和,得到了正確的結果344。
綜上所述,對一個陣列的某一列求和在PHP中並不困難,只需要注意資料型別的問題即可。
以上是php怎麼對一個陣列的某一列求和的詳細內容。更多資訊請關注PHP中文網其他相關文章!