> 백엔드 개발 > PHP 문제 > PHP에서 배열의 키 합계를 찾는 방법

PHP에서 배열의 키 합계를 찾는 방법

PHPz
풀어 주다: 2023-04-20 14:01:49
원래의
1019명이 탐색했습니다.

PHP 개발자의 경우 배열에 대해 병합, 검색, 정렬 등 다양한 작업을 수행해야 하는 경우가 많습니다. 배열의 키 값을 합산해야 할 때 어떻게 해야 합니까?

PHP에서는 여러 가지 방법을 사용하여 배열에 있는 특정 키의 합을 찾을 수 있습니다. 네 가지 다른 합산 방법은 아래 사례를 통해 설명됩니다.

  1. 루프를 사용하여 배열과 합을 탐색합니다.

첫 번째 방법 합계를 구하는 방법은 루프를 사용하여 배열을 순회하고 각 키 값을 추가한 후 마지막으로 합산 결과를 얻는 것입니다.

<?php
$array = array(1, 2, 3, 4, 5);
$sum = 0;
for ($i = 0; $i < count($array); $i++) {
    $sum += $array[$i];
}
echo "数组求和结果为:".$sum;
?>
로그인 후 복사

보시다시피 for 루프를 사용하여 전체 배열을 순회하고 $sum을 사용합니다. 최종 합계를 저장합니다. 결과적으로 배열의 요소가 추가될 때마다 최종 출력 결과는 다음과 같습니다. 배열 합계 결과는 15입니다.数组求和结果为:15

该方式缺点是需要一遍一遍的循环数组,当数组数据量较大时,会影响脚本的性能。

  1. 使用 array_sum() 函数求和

PHP 中提供了 array_sum() 函数,可以很方便的对一个数组中所有元素进行求和操作,用法如下:

<?php
$array = array(1, 2, 3, 4, 5);
echo "数组求和结果为:" . array_sum($array);
?>
로그인 후 복사

可以看到,将数组作为参数传递给 array_sum() 函数,函数会对数组中的所有元素求和并返回其结果,最终输出结果为: 数组求和结果为:15

相较于第一种方式,使用 array_sum() 函数直接提供求和的操作,代码更加简单易懂,但缺点是可能对数组的键作出限制。

  1. 使用 array_reduce() 函数求和

PHP 中还有一种求和的方式是使用 array_reduce() 函数实现,在数组中循环,并对键值进行迭代处理,代码如下:

<?php
$array = array(1, 2, 3, 4, 5);
$sum = array_reduce($array, function($carry, $item) {
    $carry += $item;
    return $carry;
});
echo "数组求和结果为:" . $sum;
?>
로그인 후 복사

该方法需要传入两个参数,数组和一个处理函数,函数中 $carry 代表上一次的计算结果,$item 代表当前处理的元素。

array_reduce() 函数会对传入的数组进行迭代处理,每次将一个元素传入处理函数中,对元素进行操作,最终返回处理的结果,最终输出结果为:数组求和结果为:15

该方法优点是相对第一种方式,通过闭包函数可以对数组的元素进行任意操作,相比 array_sum() 函数某些情况下更加灵活。

  1. 使用递归计算多维数组某个键的和

以上三种方法都是用于求解一维数组的键和值,当涉及到多维数组时,需要先对数组进行递归展开,才能进行求和处理。

下面我们就来看下如何使用递归方式实现多维数组的求和处理:

<?php
$array = array(
        1, 
        2, 
        array(
            3, 
            4,
            array(5, 6, 7)
        )
);
function array_sum_recursive($input)
{
    $sum = 0;
    foreach ($input as $item) {
        if (is_array($item)) {
            $sum += array_sum_recursive($item);
        } else if (is_numeric($item)) {
            $sum += $item;
        }
    }
    return $sum;
}
echo "多维数组求和结果为:".array_sum_recursive($array);
?>
로그인 후 복사

通过上述函数 array_sum_recursive(),我们可以遍历多维数组的每一个元素,并对其中每个子数组采用递归方式进行求和,最终返回多维数组的求和结果。输出结果为:多维数组求和结果为:28

이 방법의 단점은 배열을 계속해서 순환하는 경우 배열의 데이터 양이 커지면 스크립트 성능에 영향을 미칩니다.

    합산에는 array_sum() 함수를 사용하세요.

    🎜PHP에서는 배열의 모든 요소를 ​​쉽게 합산할 수 있는 array_sum() 함수를 제공합니다. 사용법은 다음과 같습니다. 🎜rrreee🎜 As 보시다시피 배열이 array_sum() 함수에 매개 변수로 전달되면 함수는 배열의 모든 요소를 ​​합산하고 결과를 반환합니다. 배열 합계 결과는 15입니다. 🎜 🎜첫 번째 방법에 비해 array_sum() 함수를 사용하여 합계 연산을 직접 제공하는 방식은 코드가 더 간단하고 이해하기 쉽지만, 배열의 키에 제한이 있을 수 있다는 단점이 있습니다. 🎜
      🎜합산에는 array_reduce() 함수를 사용하세요🎜🎜🎜PHP에서 합산하는 또 다른 방법은 array_reduce() 함수를 사용하여 배열을 반복하고 키 값을 반복하는 것입니다. 🎜rrreee🎜 이 메소드는 배열과 처리 함수라는 두 개의 매개변수를 전달해야 합니다. 함수에서 $carry는 마지막 계산 결과를 나타내고 $item은 현재 처리된 요소를 나타냅니다. 🎜🎜array_reduce() 함수는 들어오는 배열을 반복적으로 처리하여 매번 하나의 요소를 처리 함수에 전달하고 해당 요소에 대해 작업을 수행한 후 마지막으로 처리 결과를 반환합니다. 배열 합계 결과는 다음과 같습니다. 15🎜🎜이 방법의 장점은 첫 번째 방법에 비해 클로저 함수를 통해 배열의 요소에 대해 임의의 연산을 수행할 수 있다는 점입니다. array_sum() 함수에 비해 일부에서는 더 유연합니다. 사례. 🎜
        🎜재귀를 사용하여 다차원 배열의 키 합을 계산하세요🎜🎜🎜위의 세 가지 방법은 1차원 배열의 키와 값을 풀 때 사용됩니다. 다차원 배열의 경우 먼저 합산 처리를 수행하기 전에 배열을 재귀적으로 확장해야 합니다. 🎜🎜재귀를 사용하여 다차원 배열의 합계 처리를 구현하는 방법을 살펴보겠습니다. 🎜rrreee🎜위 함수 array_sum_recursive()를 통해 다차원 배열의 각 요소를 순회하고 각 하위 항목에 대해 재귀 처리를 수행할 수 있습니다. -array.Sum을 수행하고 마지막으로 다차원 배열의 합산 결과를 반환합니다. 출력 결과는 다음과 같습니다. 다차원 배열의 합은 28입니다.🎜🎜다차원 배열의 합을 구현하는 재귀적 방법은 더 번거롭지만 매우 유연하며 다음과 같은 경우 매우 유용합니다. 다층 중첩 배열을 다루고 있습니다. 🎜🎜실제 프로젝트 개발에서 위의 다양한 방법을 선택하여 다양한 필요에 따라 배열 키의 합을 계산하고 성능과 가독성에 따라 균형을 맞출 수 있습니다. 🎜

위 내용은 PHP에서 배열의 키 합계를 찾는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿