라이브러리

[PHP] DsMap::union - 현재 인스턴스의 값과 다른 맵을 사용하여 새 맵을 만듭니다.




DsMap::union

PHP 7.4 버전부터는 `DsMap` 클래스가 추가되었습니다. `DsMap` 클래스는 키-값 쌍을 저장하고 관리하는 데이터 구조입니다. `DsMap` 클래스는 여러 메서드를 제공하며, 그 중 하나가 `union` 메서드입니다.

`DsMap::union` 메서드는 두 개의 `DsMap` 객체를 합쳐서 새로운 `DsMap` 객체를 반환합니다. 합쳐지는 두 개의 `DsMap` 객체는 중복 키를 허용하지 않습니다. 중복 키가 있는 경우, 합쳐지는 두 번째 `DsMap` 객체의 값이 우선합니다.

예제

다음 예제는 `DsMap::union` 메서드를 사용하여 두 개의 `DsMap` 객체를 합치는 방법을 보여줍니다.

#hostingforum.kr
php

use function SplObjectStorage::attach;

use function SplObjectStorage::detach;

use function SplObjectStorage::rewind;

use function SplObjectStorage::valid;

use function SplObjectStorage::current;

use function SplObjectStorage::key;

use function SplObjectStorage::next;

use function SplObjectStorage::count;

use function SplObjectStorage::getInfo;

use function SplObjectStorage::contains;

use function SplObjectStorage::all;



class Person {

    public $name;

    public $age;



    function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }

}



$map1 = new DsMap();

$map1->set('John', new Person('John', 30));

$map1->set('Alice', new Person('Alice', 25));



$map2 = new DsMap();

$map2->set('John', new Person('John', 35));

$map2->set('Bob', new Person('Bob', 40));



$map3 = clone $map1;

$map3->union($map2);



foreach ($map3 as $key => $value) {

    echo "Key: $key, Name: " . $value->name . ", Age: " . $value->age . "
";

}



이 예제에서는 두 개의 `DsMap` 객체 `$map1`과 `$map2`를 생성하고, 각 객체에 키-값 쌍을 저장합니다. `$map3`은 `$map1`을 복사한 후 `$map2`를 합칩니다. 그 후, `$map3`의 키-값 쌍을 출력합니다.

결과는 다음과 같습니다.

#hostingforum.kr


Key: John, Name: John, Age: 35

Key: Alice, Name: Alice, Age: 25

Key: Bob, Name: Bob, Age: 40



중복 키인 `John`의 경우, `$map2`의 값이 우선하여 `$map3`의 값이 `35`이 됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 602 페이지

검색

게시물 검색