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

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

Apr 20, 2023 pm 01:55 PM

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)