jQuery 및 Laravel 컬렉션에서 제공하는 배열과 유사한 컬렉션 개체를 사용하여 PHP 배열을 쉽고 우아하게 처리합니다.
작곡가 요청 aimeos/map
지원되는 PHP 버전:
PHP 7.1+
PHP 8+
목차
PHP 맵을 사용해야 하는 이유
방법 목록
만들다
입장
추가하다
골재
디버그
주문하다
줄이다
시험
돌연변이
기타
선적 서류 비치
맞춤 방법
성능
업그레이드 가이드
대신:
$list = [['id' => '1', 'value' => 'value1'], ['id' => '2', 'value' => 'value2'], null];$list[ ] = ['id' => '3', '값' => '값3']; // 요소 추가unset( $list[0] ); // 요소 제거$list = array_filter( $list ); // 빈 값을 제거합니다.sort( $list ); // 요소 정렬$pairs = array_column( $list, 'value', 'id' ); // 생성 ['3' => 'value3']$value = 재설정( $pairs ) ?: null; // 첫 번째 값을 반환
다음만 사용하세요:
$list = [['id' => '1', 'value' => 'value1'], ['id' => '2', 'value' => 'value2'], null];$value = map( $list ) // Map 생성->push( ['id' => '3', 'value' => 'value3'] ) // 요소 추가->remove( 0 ) // 요소 제거->filter () // 공백 제거 값->sort() // 요소 정렬->col( 'value', 'id' ) // 생성 ['3' => 'value3']->first(); // 첫 번째 값을 반환
다음을 계속 사용할 수 있습니다.
$map[] = ['id' => '3', 'value' => 'value3'];$value = $map[0];count( $map );foreach( $map as $key => value );
콜백을 사용하세요:
또한 지도 객체를 사용하면 익명 함수를 많은 메소드에 전달할 수 있습니다. 예:
$map->each( function( $val, $key ) { echo $key . ': ' . $val; } );
jQuery 스타일:
지도 요소가 객체인 경우 각 객체에 대한 메서드를 호출하고 jQuery에서와 같이 새 지도로 결과를 얻을 수 있습니다.
// MyClass는 setStatus()($this 반환) 및 getCode()(생성자에 의해 초기화됨)를 구현합니다.$map = Map::from( ['a' => new MyClass( 'x' ), 'b' => new MyClass ( 'y' )] );$map->setStatus( 1 )->getCode()->toArray();
그러면 두 객체 모두에서 setStatus( 1 )
호출됩니다. setStatus()
구현이 $this
반환하는 경우 새 맵에는 다음도 포함됩니다.
['a' => 마이클래스(), 'b' => 마이클래스()]
새 지도 요소에서는 첫 번째 개체에 대해 x
반환하고 두 번째 개체에 대해 y
반환하는 getCode()
호출됩니다. getCode()
의 결과로 생성된 맵은 다음을 반환합니다.
['a' => 'x', 'b' => 'y']
함수 맵 함수 is_map __call __callStatic __construct after all asort arsorted asort avg before bool call 캐스트 청크 지우기 클론 col 축소 결합 비교 concat 포함 복사본 개수 countBy dd 구분 기호 diff diffAssoc diffKeys 덤프 중복 각각의 비어 있음 폭발 필터를 제외한 모든 것과 같음 첫 번째 키 플랫 플립 fromJson에서 float getIterator grep groupBy를 가져오면 ifAny ifEmpty가 포함에서 구현됩니다. index insertAfter insertAt insertBefore inString int intersect intersectAssoc intersectKeys is isEmpty isNumeric isObject isScalar isString Join jsonSerialize 키 krsort krsorted ksort last lastKey ltrim map max merge method min none nth offsetExists offsetGet offsetSet offsetUnset only order pad partition 비율 파이프 뽑기 팝 pos 접두어 앞에 추가 풀 푸시 넣기 무작위 감소 거부 키 재설정 제거 교체 역방향 역순 정렬 rsorted rtrim 검색 sep set Shift shuffle shuffled 건너뛰기 슬라이스 일종의 정렬된 스플라이스 분할 strAfter strContains strContainsAll strEnds strEndsAll string strLower strReplace strStarts strStartsAll strUpper 접미사 합계 소요 탭 시간 toArray toJson toReversed toSorted toUrl 변환 전치 트래버스 트리 트림 uasort uasorted uksort uksorted Union Unique unshift usort 정렬된 값은 zip을 사용하여 어디로 이동합니까?
function map() : 전달된 요소로부터 새 지도를 만듭니다.
__construct(): 새 지도를 만듭니다.
clone() : 지도와 지도 내의 모든 객체를 복제합니다.
copy() : 새 복사본을 만듭니다.
폭발() : 문자열을 요소 맵으로 분할합니다.
from() : 전달된 요소로 새 지도를 만듭니다.
fromJson(): JSON 문자열에서 새 지도를 만듭니다.
times() : 클로저를 여러 번 호출하여 새 지도를 생성합니다.
tree() : 목록 항목에서 트리 구조를 만듭니다.
__call(): 사용자 정의 메소드를 호출합니다.
__callStatic(): 사용자 정의 메서드를 정적으로 호출합니다.
all() : 일반 배열을 반환합니다.
at() : 주어진 위치의 값을 반환합니다.
bool() : 키로 요소를 반환하고 이를 부울로 변환합니다.
call() : 모든 항목에 대해 지정된 메소드를 호출합니다.
find() : 첫 번째/마지막 일치하는 요소를 반환합니다.
first() : 첫 번째 요소를 반환합니다.
firstKey() : 첫 번째 키를 반환합니다.
get() : 키로 요소를 반환합니다.
index() : 주어진 키의 숫자 인덱스를 반환합니다.
int() : 키로 요소를 반환하고 정수로 변환합니다.
float() : 키로 요소를 반환하고 부동 소수점으로 캐스팅합니다.
키() : 모든 키를 반환합니다.
last() : 마지막 요소를 반환합니다.
lastKey() : 마지막 키를 반환합니다.
pop() : 마지막 요소를 반환하고 제거합니다.
pos() : 값의 숫자 인덱스를 반환합니다.
pull() : 키로 요소를 반환하고 제거합니다.
random() : 키를 유지하는 임의의 요소를 반환합니다.
search() : 요소의 키를 찾습니다.
Shift() : 첫 번째 요소를 반환하고 제거합니다.
string() : 키로 요소를 반환하고 이를 문자열로 캐스팅합니다.
toArray() : 일반 배열을 반환합니다.
Unique() : 키를 유지하는 모든 고유 요소를 반환합니다.
값() : 새 키가 있는 모든 요소를 반환합니다.
concat() : 새 키가 있는 모든 요소를 추가합니다.
insertAfter() : 주어진 요소 뒤에 값을 삽입합니다.
insertAt() : 맵의 지정된 위치에 요소를 삽입합니다.
insertBefore() : 주어진 요소 앞에 값을 삽입합니다.
merge() : 기존 요소를 덮어쓰면서 요소를 결합합니다.
pad() : 주어진 값으로 지정된 길이까지 채운다
prepend() : 시작 부분에 요소를 추가합니다(별칭).
push() : 끝에 요소를 추가합니다.
put() : 맵에 주어진 키와 값을 설정합니다(별칭)
set() : 요소를 덮어쓰거나 추가합니다.
Union() : 기존 요소를 덮어쓰지 않고 요소를 추가합니다.
unshift() : 시작 부분에 요소를 추가합니다.
with() : 복사본을 반환하고 요소를 설정합니다.
avg() : 모든 값의 평균을 반환합니다.
count() : 총 요소 수를 반환합니다.
countBy() : 동일한 값이 맵에 얼마나 자주 있는지 계산합니다.
max() : 모든 요소의 최대값을 반환합니다.
min() : 모든 요소의 최소값을 반환합니다.
백분율() : 테스트를 통과한 모든 요소의 백분율을 반환합니다.
sum() : 맵에 있는 모든 값의 합계를 반환합니다.
dd() : 지도 내용을 인쇄하고 스크립트를 종료합니다.
dump() : 지도 콘텐츠를 인쇄합니다.
tap() : 지도의 복제본을 지정된 콜백에 전달합니다.
arsort() : 키를 유지하는 역 정렬 요소
arsorted() : 맵 복사본의 키를 유지하는 역 정렬 요소
asort() : 키를 유지하면서 요소를 정렬합니다.
asorted() : 맵 복사본의 키를 유지하는 요소 정렬
krsort() : 키를 기준으로 요소를 역순으로 정렬합니다.
krsorted() : 맵 복사본의 키를 기준으로 요소를 역방향 정렬합니다.
ksort() : 키를 기준으로 요소 정렬
order() : 전달된 키를 기준으로 요소의 순서를 지정합니다.
reverse() : 키를 유지하면서 배열 순서를 반대로 바꿉니다.
reversed() : 맵 복사본의 요소 순서를 반대로 바꿉니다.
toReversed(): 지도 복사본에서 요소 순서를 반대로 바꿉니다(별칭).
rsort() : 새 키를 사용하여 요소 역순 정렬
rsorted() : 맵 복사본의 새 키를 사용하여 요소를 역방향 정렬합니다.
shuffle() : 요소 순서를 무작위로 지정합니다.
shuffled() : 맵 복사본에서 요소 순서를 무작위로 지정합니다.
sort() : 새 키를 할당하여 요소를 제자리에서 정렬합니다.
sorted() : 새 키를 사용하여 맵 복사본의 요소를 정렬합니다.
toSorted() : 새 키(별칭)를 사용하여 맵 복사본의 요소를 정렬합니다.
uasort() : 콜백을 사용하여 키를 유지하는 요소를 정렬합니다.
uasorted() : 맵 복사본에서 콜백을 사용하여 키를 유지하는 요소를 정렬합니다.
uksort() : 콜백을 사용하여 키별로 요소를 정렬합니다.
uksorted() : 지도 복사본에서 콜백을 사용하여 키별로 요소를 정렬합니다.
usort() : 새 키를 할당하는 콜백을 사용하여 요소를 정렬합니다.
usorted() : 맵 복사본에 새 키를 할당하는 콜백을 사용하여 요소를 정렬합니다.
after() : 주어진 요소 이후의 요소를 반환합니다.
before() : 주어진 요소 이전의 요소를 반환합니다.
clear() : 모든 요소를 제거합니다.
diff() : 주어진 목록에 누락된 요소를 반환합니다.
diffAssoc(): 주어진 목록에 누락된 요소를 반환하고 키를 확인합니다.
diffKeys() : 주어진 목록에서 누락된 요소를 키로 반환합니다.
Except() : 전달된 요소 키 없이 새 맵을 반환합니다.
filter() : 모든 요소에 필터를 적용합니다.
grep() : 모든 요소에 정규식을 적용합니다.
intersect() : 공유된 요소를 반환합니다.
intersectAssoc(): 공유된 요소를 반환하고 키를 확인합니다.
intersectKeys() : 키가 공유하는 요소를 반환합니다.
nth() : 맵에서 n번째 요소를 모두 반환합니다.
only() : 키로 지정된 요소만 반환합니다.
pop() : 마지막 요소를 반환하고 제거합니다.
pull() : 키로 요소를 반환하고 제거합니다.
Reject() : 일치하는 모든 요소를 제거합니다.
Remove() : 키로 요소를 제거합니다.
Shift() : 첫 번째 요소를 반환하고 제거합니다.
Skip() : 주어진 수의 항목을 건너뛰고 나머지를 반환합니다.
Slice() : 지도의 조각을 반환합니다.
take() : 주어진 항목 수로 새 지도를 반환합니다.
where() : 주어진 조건에 따라 요소 목록을 필터링합니다.
함수 is_map() : 변수가 맵 객체인지 테스트합니다.
Compare() : 모든 지도 요소와 값을 비교합니다.
Contains() : 지도에 항목이 있는지 테스트합니다.
Each() : 각 요소에 콜백을 적용합니다.
empty() : 맵이 비어 있는지 테스트합니다.
equals() : 지도 내용이 동일한지 테스트합니다.
Every() : 모든 요소가 지정된 콜백의 테스트를 통과하는지 확인합니다.
has() : 키가 존재하는지 테스트합니다.
if() : 조건에 따라 콜백을 실행합니다.
ifAny(): 지도에 요소가 포함된 경우 콜백을 실행합니다.
ifEmpty() : 맵이 비어 있으면 콜백을 실행합니다.
in() : 요소가 포함되어 있는지 테스트합니다.
include() : 요소가 포함되어 있는지 테스트합니다.
inString() : 항목이 맵 문자열의 일부인지 테스트합니다.
is() : 맵이 동일한 키와 값으로 구성되어 있는지 테스트합니다.
isEmpty() : 맵이 비어 있는지 테스트합니다.
isNumeric() : 모든 항목이 숫자 값인지 테스트합니다.
isObject() : 모든 항목이 객체인지 테스트합니다.
isScalar() : 모든 항목이 스칼라 값인지 테스트합니다.
isString() : 모든 항목이 문자열 값인지 테스트합니다.
Implements() : 모든 항목이 인터페이스를 구현하는 객체인지 테스트합니다.
none() : 지도에 포함된 요소가 없는지 테스트합니다.
some() : 하나 이상의 요소가 포함되어 있는지 테스트합니다.
strContains(): 전달된 문자열 중 하나 이상이 하나 이상의 항목에 포함되어 있는지 테스트합니다.
strContainsAll(): 모든 항목에 전달된 문자열 중 하나가 포함되어 있는지 테스트합니다.
strEnds() : 항목 중 하나 이상이 전달된 문자열 중 하나로 끝나는지 테스트합니다.
strEndsAll(): 모든 항목이 전달된 문자열 중 하나 이상으로 끝나는지 테스트합니다.
strStarts() : 항목 중 하나 이상이 전달된 문자열 중 하나 이상으로 시작하는지 테스트합니다.
strStartsAll() : 모든 항목이 전달된 문자열 중 하나로 시작하는지 테스트합니다.
Cast() : 모든 항목을 전달된 유형으로 캐스팅합니다.
Chunk() : 지도를 여러 개의 청크로 분할합니다.
col() : 키/값 매핑을 생성합니다.
Collapse() : 요소를 덮어쓰면서 다차원 요소를 축소합니다.
Combine() : 지도 요소를 주어진 값과 키로 결합합니다.
flat() : 요소를 덮어쓰지 않고 다차원 요소를 평면화합니다.
Flip() : 키를 해당 값으로 교환합니다.
groupBy() : 연관 배열 요소 또는 객체를 그룹화합니다.
Join() : 연결된 요소를 구분 기호가 있는 문자열로 반환합니다.
ltrim() : 모든 문자열의 왼쪽에서 전달된 문자를 제거합니다.
map() : 각 요소에 콜백을 적용하고 결과를 반환합니다.
partition() : 목록을 주어진 수의 그룹으로 나눕니다.
Pipe() : 전체 지도에 콜백을 적용합니다.
pluck() : 키/값 매핑(별칭)을 생성합니다.
prefix() : 각 지도 항목에 접두사를 추가합니다.
Reduce() : 지도 콘텐츠에서 단일 값을 계산합니다.
rekey() : 전달된 함수에 따라 키를 변경합니다.
replacement() : 요소를 재귀적으로 교체합니다.
rtrim() : 모든 문자열의 오른쪽에서 전달된 문자를 제거합니다.
splice() : 슬라이스를 새 요소로 교체합니다.
strAfter() : 전달된 값 뒤의 문자열을 반환합니다.
strLower() : 모든 알파벳을 소문자로 변환합니다.
strReplace() : 검색 문자열의 모든 항목을 대체 문자열로 바꿉니다.
strUpper() : 모든 알파벳을 대문자로 변환합니다.
suffix() : 각 지도 항목에 접미사를 추가합니다.
toJson() : JSON 형식으로 요소를 반환합니다.
toUrl() : HTTP 쿼리 문자열을 생성합니다.
transfrom() : 새로운 키/값 쌍을 생성하는 각 요소에 콜백을 적용합니다.
transpose() : 2차원 지도를 위해 행과 열을 교환합니다.
traverse() : 각 항목을 콜백에 전달하는 중첩 항목의 트리를 순회합니다.
Trim() : 모든 문자열의 왼쪽/오른쪽에서 전달된 문자를 제거합니다.
walk() : 주어진 콜백을 모든 요소에 적용합니다.
zip() : 해당 인덱스에 있는 모든 배열의 값을 병합합니다.
delimiter() : 다차원 배열 경로에 대한 구분 기호를 설정하거나 반환합니다.
getIterator() : 요소에 대한 반복자를 반환합니다.
jsonSerialize() : JSON으로 직렬화되어야 하는 데이터를 지정합니다.
method() : 사용자 정의 메소드를 등록합니다.
offsetExists() : 키가 존재하는지 확인합니다.
offsetGet() : 키로 요소를 반환합니다.
offsetSet() : 요소를 덮어씁니다.
offsetUnset() : 키로 요소를 제거합니다.
sep() : 현재 맵의 다차원 배열 경로에 대한 구분 기호를 설정합니다.
변수가 지도 객체인지 테스트합니다.
함수 is_map( $var ) : bool
@param 혼합 $var
테스트할 변수
예:
is_map( new Map() );// trueis_map( [] );// false
전달된 요소에 대한 새 맵을 반환합니다.
함수 맵( $elements = [] ) : AimeosMap
@param 혼합 $elements
요소 목록 또는 단일 값
@return AimeosMap 맵 인스턴스
예:
// arraymap( [] );// nullmap( null );// scalarmap( 'a' );// objectmap( new stdClass() );// 지도 objectmap( new Map() );// 반복 가능한 objectmap( new ArrayObject() );// 클로저 평가 lazilymap( function() {return []; } );
참조:
rekey() - 전달된 함수에 따라 키를 변경합니다.
변환() - 전달된 함수를 사용하여 새 키/값 쌍을 만들고 결과에 대한 새 맵을 반환합니다.
새 지도 개체를 만듭니다.
공개 함수 __construct( $elements = [] )
@param 혼합 $elements
단일 요소, 요소 목록, Map 객체, 반복 가능한 객체 또는 반복자, 기타 모든 것
예:
// arraynew Map( [] );// nullnew Map( null );// scalarnew Map( 'a' );// objectnew Map( new stdClass() );// 지도 objectnew Map( new Map() ); // 반복 가능한 객체new Map( new ArrayObject() );// 클로저 평가 지연new Map( function() {return []; } );
클래스의 사용자 정의 메서드에 대한 동적 호출을 처리합니다.
공개 함수 __call(문자열 $name, 배열 $params)
@param string $name
메소드 이름
@param array<mixed> $params
매개변수 목록
@return 혼합 호출된 함수의 결과 또는 요소 메서드의 결과가 포함된 새 맵
Map::method()에 의해 추가된 사용자 정의 메소드를 호출합니다. 호출된 메서드는 $this->items
사용하여 내부 배열에 액세스할 수 있습니다.
예:
Map::method( 'case', function( $case = CASE_LOWER ) {return new self( array_change_key_case( $this->items, $case ) ); } ); Map::from( ['a' => '바'] )->case( CASE_UPPER );// ['A' => '바']
항목이 객체인 경우 객체 메서드 호출도 허용됩니다.
$item = 새로운 MyClass(); // setStatus() 메소드($this 반환) 및 getCode()로 ImplementMap::from( [$item, $item] )->setStatus( 1 )->getCode()->toArray();
그러면 지도에 있는 각 요소의 setStatus()
메서드가 호출되고 해당 요소의 반환 값을 사용하여 새 지도가 생성됩니다. 새 맵에서는 모든 요소에 대해 getCode()
메서드가 호출되고 해당 반환 값도 새 맵에 저장됩니다. 그런 다음 이 마지막 맵이 반환되고 원본 맵의 맵 키가 반환된 맵에 보존됩니다.
요소가 객체가 아닌 경우 건너뛰고 모든 요소에 적용되는 경우 빈 맵이 반환됩니다. 맵에 혼합 유형의 개체가 포함되어 있고 그 중 하나가 호출된 메서드를 구현하지 않는 경우 오류가 발생합니다.
클래스의 사용자 정의 메서드에 대한 정적 호출을 처리합니다.
공개 정적 함수 __callStatic( 문자열 $name, 배열 $params )
@param string $name
메소드 이름
@param array<mixed> $params
매개변수 목록
@return 혼합 호출된 함수의 결과 또는 요소 메서드의 결과가 포함된 새 맵
@throws BadMethodCallException 해당 이름에 등록된 메소드가 없는 경우
Map::method()에 의해 추가된 사용자 정의 메소드를 정적으로 호출합니다. 사용 가능한 개체가 없기 때문에 호출된 메서드는 내부 배열에 액세스할 수 없습니다.
예:
Map::method( 'foo', function( $arg1, $arg2 ) {} ); 지도::foo( $arg1, $arg2 );
주어진 요소 다음의 요소를 반환합니다.
공개 함수 이후( $value ) : self
@param Closure|int|string $value
(항목, 키) 매개변수가 있는 값 또는 함수
@return self<int|string,mixed> 주어진 요소 다음의 요소를 포함하는 새 맵
이 방법을 사용하면 키가 보존됩니다.
예:
Map::from( [0 => 'b', 1 => 'a'] )->after( 'b' );// [1 => 'a']Map::from( ['a' = > 1, 'b' => 0] )->after( 1 );// ['b' => 0]Map::from( [0 => 'b', 1 => 'a'] )- >이후('c' );// []Map::from( ['a', 'c', 'b'] )->after( function( $item, $key ) {return $item >= 'c'; } );// [2 => 'b']
요소를 일반 배열로 반환합니다.
공용 함수 all() : 배열
@return 배열 일반 배열
예:
Map::from( ['a'] )->all();// ['a']
모든 요소를 역순으로 정렬하고 키 연결을 유지합니다.
공용 함수 arsort( int $options = SORT_REGULAR ) : self
@param int $options
arsort()
의 정렬 옵션
@return self<int|string,mixed> 유동 인터페이스에 대한 업데이트된 맵
이 방법을 사용하면 키가 보존되며 새 맵이 생성되지 않습니다.
$options
매개변수는 값 비교 방법을 수정합니다. 가능한 매개변수 값은 다음과 같습니다.
SORT_REGULAR : 요소를 정상적으로 비교합니다(유형을 변경하지 않음).
SORT_NUMERIC : 요소를 숫자로 비교
SORT_STRING : 요소를 문자열로 비교
SORT_LOCALE_STRING : 현재 로케일을 기반으로 하거나 setlocale()
에 의해 변경된 요소를 문자열로 비교합니다.
SORT_NATURAL : natsort()
와 같은 "자연 순서"를 사용하여 요소를 문자열로 비교합니다.
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE 및 SORT_NATURAL|SORT_FLAG_CASE를 사용하여 문자열을 대소문자를 구분하지 않고 정렬합니다.
예:
Map::from( ['b' => 0, 'a' => 1] )->arsort();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsort();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsort ();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [0 = > 'C', 1 => 'b'] 왜냐하면 'C' -> 'c' 및 'c' > 'b'이기 때문입니다.
모든 요소의 복사본을 역순으로 정렬하고 키 연결을 유지합니다.
공개 함수 정렬( int $options = SORT_REGULAR ) : self
@param int $options
arsort()
의 정렬 옵션
@return self<int|string,mixed> 유동 인터페이스에 대한 업데이트된 맵
이 방법을 사용하면 키가 보존되고 새 맵이 생성됩니다.
$options
매개변수는 값 비교 방법을 수정합니다. 가능한 매개변수 값은 다음과 같습니다.
SORT_REGULAR : 요소를 정상적으로 비교합니다(유형을 변경하지 않음).
SORT_NUMERIC : 요소를 숫자로 비교
SORT_STRING : 요소를 문자열로 비교
SORT_LOCALE_STRING : 현재 로케일을 기반으로 하거나 setlocale()
에 의해 변경된 요소를 문자열로 비교합니다.
SORT_NATURAL : natsort()
와 같은 "자연 순서"를 사용하여 요소를 문자열로 비교합니다.
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE 및 SORT_NATURAL|SORT_FLAG_CASE를 사용하여 문자열을 대소문자를 구분하지 않고 정렬합니다.
예:
Map::from( ['b' => 0, 'a' => 1] )->arsorted();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsorted();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsorted();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsorted( SORT_STRING |SORT_FLAG_CASE );// [0 => 'C', 1 => 'b'] 'C' -> 'c' 및 'c' > 'b'이기 때문입니다.
모든 요소를 정렬하고 키 연관을 유지합니다.
공용 함수 asort( int $options = SORT_REGULAR ) : self
@param int $options
asort()
에 대한 정렬 옵션
@return self<int|string,mixed> 유동 인터페이스에 대한 업데이트된 맵
이 방법을 사용하면 키가 보존되며 새 맵이 생성되지 않습니다.
매개변수는 값이 비교되는 방식을 수정합니다. 가능한 매개변수 값은 다음과 같습니다.
SORT_REGULAR : 요소를 정상적으로 비교합니다(유형을 변경하지 않음).
SORT_NUMERIC : 요소를 숫자로 비교
SORT_STRING : 요소를 문자열로 비교
SORT_LOCALE_STRING : 현재 로케일을 기반으로 하거나 setlocale()
에 의해 변경된 요소를 문자열로 비교합니다.
SORT_NATURAL : natsort()
와 같은 "자연 순서"를 사용하여 요소를 문자열로 비교합니다.
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE 및 SORT_NATURAL|SORT_FLAG_CASE를 사용하여 문자열을 대소문자를 구분하지 않고 정렬합니다.
예:
Map::from( ['a' => 1, 'b' => 0] )->asort();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asort();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C' , 1 => 'b'] )->asort();// [0 => 'C', 1 => 'b'] 왜냐하면 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] 왜냐하면 'C' -> 'c' 및 'c' >이기 때문입니다. '비'
모든 요소의 복사본을 정렬하고 키 연결을 유지합니다.
공용 함수 정렬( int $options = SORT_REGULAR ) : self
@param int $options
asort()
에 대한 정렬 옵션
@return self<int|string,mixed> 유동 인터페이스에 대한 업데이트된 맵
이 방법을 사용하면 키가 보존되고 새 맵이 생성됩니다.
매개변수는 값이 비교되는 방식을 수정합니다. 가능한 매개변수 값은 다음과 같습니다.
SORT_REGULAR : 요소를 정상적으로 비교합니다(유형을 변경하지 않음).
SORT_NUMERIC : 요소를 숫자로 비교
SORT_STRING : 요소를 문자열로 비교
SORT_LOCALE_STRING : 현재 로케일을 기반으로 하거나 setlocale()
에 의해 변경된 요소를 문자열로 비교합니다.
SORT_NATURAL : natsort()
와 같은 "자연 순서"를 사용하여 요소를 문자열로 비교합니다.
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE 및 SORT_NATURAL|SORT_FLAG_CASE를 사용하여 문자열을 대소문자를 구분하지 않고 정렬합니다.
예:
Map::from( ['a' => 1, 'b' => 0] )->asorted();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asorted();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C' , 1 => 'b'] )->asorted();// [0 => 'C', 1 => 'b'] 왜냐하면 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->정렬됨( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] 왜냐하면 'C' -> 'c' 및 'c' >이기 때문입니다. '비'
주어진 위치의 값을 반환합니다.
( int $pos )의 공개 함수
@param int $pos
맵에서 값의 위치
@return Mixed�null 주어진 위치의 값 또는 값을 사용할 수 없는 경우 NULL
위치는 0부터 시작하고 위치 "0"은 지도의 첫 번째 요소를 반환하고 "1"은 두 번째 요소를 반환합니다. 위치가 음수이면 지도 끝부터 시퀀스가 시작됩니다.
예:
Map::from( [1, 3, 5] )->at( 0 );// 1Map::from( [1, 3, 5] )->at( 1 );// 3Map::from( [ 1, 3, 5] )->at( -1 );// 5Map::from( [1, 3, 5] )->at( 3 );// NULL
지도에 있는 모든 정수 및 부동 소수점 값의 평균을 반환합니다.
공개 함수 평균( $col = null ) : 부동 소수점
@param Closure|string|null $col
평균을 계산할 중첩 배열 또는 객체의 값에 대한 클로저, 키 또는 경로입니다.
@return float 모든 요소의 평균 또는 맵에 요소가 없는 경우 0
NULL 값은 0으로 처리되며, 숫자가 아닌 값은 오류를 생성합니다.
이는 구분 기호(기본적으로 "/")로 구분된 배열의 키를 전달하여 다차원 배열에서도 작동합니다. 예를 들어 ['key1' => ['key2' => ['key3' => 'val']]]
에서 "val"을 가져오려면 "key1/key2/key3"을 사용합니다. ['key1' => ['key2' => ['key3' => 'val']]]
. __isset()
및 __get()
메서드를 구현하는 객체나 객체의 공용 속성에도 동일하게 적용됩니다.
예:
Map::from( [1, 3, 5] )->avg();// 3Map::from( [1, null, 5] )->avg();// 3Map::from( [1, 'sum', 5] )->avg();// 2Map::from( [['p' => 30], ['p' => 50], ['p' => 10]] )->avg( 'p' );// 30Map::from( [['i' => ['p' => 30]], ['<sp