> 백엔드 개발 > PHP 문제 > PHP 배열에서 동일한 숫자를 지우는 방법

PHP 배열에서 동일한 숫자를 지우는 방법

PHPz
풀어 주다: 2023-04-27 10:31:10
원래의
482명이 탐색했습니다.

PHP에서는 검색, 정렬, 중복 제거 등 배열에 대한 다양한 작업을 수행해야 하는 경우가 많습니다. 중복 제거 작업은 배열에서 중복된 요소를 제거하는 것입니다. 실제 개발 과정에서 동일한 숫자를 지워야 하는 상황이 자주 발생합니다. 이 글에서는 PHP 배열을 사용하여 중복된 숫자를 제거하는 방법을 소개합니다.

1. array_unique() 함수

PHP에는 배열에서 중복된 값을 제거하고 새 배열을 반환하는 데 사용할 수 있는 array_unique() 함수가 있습니다. 이 함수는 값 비교를 사용합니다. 즉, 동일한 값을 가진 요소만 중복으로 간주됩니다.

다음은 array_unique() 함수를 사용하여 중복을 제거하는 샘플 코드입니다.

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array_unique($array);

//输出去重后的数组
print_r($new_array);
?>
로그인 후 복사

위 코드를 실행하면 출력을 얻을 수 있습니다.

Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)
로그인 후 복사

중복된 숫자가 제거되고 다른 숫자만 남는 것을 볼 수 있습니다. .

2. 루프 탐색을 사용하여 중복 제거

array_unique() 함수를 사용하는 것 외에도 루프 탐색을 사용하여 중복을 제거할 수도 있습니다. 구체적인 구현은 다음과 같습니다.

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}

//输出去重后的数组
print_r($new_array);
?>
로그인 후 복사

위 코드에서는 빈 배열 $new_array를 사용하여 고유한 숫자를 저장합니다. 그런 다음 foreach 루프를 사용하여 원래 배열 $array를 순회합니다. 현재 요소가 $new_array에 없으면 현재 요소를 $new_array 배열에 추가합니다.

위 코드를 실행하면 이전과 동일한 출력을 얻을 수 있습니다.

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)
로그인 후 복사

3. 성능 비교

위에 언급된 두 가지 중복 제거 방법의 성능은 어떻습니까? 비교해 봅시다.

두 메소드의 성능을 비교하기 위해 100,000개의 난수가 포함된 배열을 정의한 후 두 메소드를 사용하여 중복을 제거하고 실행 시간을 계산했습니다. 코드는 다음과 같습니다.

<?php
//1. 使用 array_unique() 函数
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array_unique($array);
$end_time = microtime(true);
echo &#39;使用 array_unique() 函数执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;

echo "\n";

//2. 使用循环遍历
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}
$end_time = microtime(true);
echo &#39;使用循环遍历执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;
?>
로그인 후 복사

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

使用 array_unique() 函数执行时间:0.011376142501831 秒
使用循环遍历执行时间:15.46102309227 秒
로그인 후 복사

array_unique() 함수를 사용하는 것이 훨씬 효율적이라는 것을 알 수 있습니다.

4. 요약

실제 개발에서는 프로그램의 실행 효율성을 높이기 위해 루프나 기타 코드를 직접 작성하여 처리하는 대신 PHP에서 제공하는 내장 함수를 사용하도록 노력해야 합니다. 배열에서 동일한 숫자를 제거하는 문제의 경우 PHP에 내장된 array_unique() 함수를 사용하는 것이 가장 간단하고 효율적인 방법이지만, 중복을 제거하기 위해 루프 순회를 사용하는 것은 많은 시간과 자원을 낭비하게 됩니다.

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

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