Development Tip

PHP 연관 배열이 정렬되어 있습니까?

yourdevel 2020. 11. 28. 12:35
반응형

PHP 연관 배열이 정렬되어 있습니까?


나는 파이썬 배경에서 왔고 비슷한 파이썬 데이터 유형 (사전)은 정렬되지 않은 키 값 쌍 세트입니다.

PHP 연관 배열이 정렬되지 않았는지 궁금합니다. 주문 된 것으로 보입니다.

$test = array(
  'test' => 'test',
  'bar' => 'bar',
);

var_dump($test);    

var_dump(array_slice($test, 0, 1));

테스트는 항상 막대 앞에오고 보시다시피이 배열을 슬라이스 할 수 있습니다. 그래서 이것은 항상 PHP 버전에서 주문이 보장됩니까? 순서는 내가 배열을 선언 한 순서 일 뿐입니 까? 그렇다면 내부적으로 'test'가 배열에 [0]을 배치하도록 가리키는 것이 있습니까? http://php.net/manual/en/language.types.array.php 를 읽었 지만이 문제에 대해 너무 많은 정보를 제공하지는 않습니다. 귀하의 답변에 감사드립니다. Ty


PHP 연관 배열 (뿐만 아니라 숫자 배열) 정렬 및 PHP 같은 배열의 키 순서를 다루는 다양한 기능을 제공 ksort(), uksort()krsort()

또한 PHP를 사용하면 숫자 키가 잘못된 배열을 선언 할 수 있습니다.

$a = array(3 => 'three', 1 => 'one', 2 => 'two');
print_r($a);

Array
(
    [3] => three
    [1] => one
    [2] => two
)
// Sort into numeric order
ksort($a);
print_r($a);
Array
(
    [1] => one
    [2] => two
    [3] => three
)

문서에서 :

PHP의 배열 은 실제로 정렬 된 맵 입니다. 맵은 값을 키에 연결하는 유형입니다. 이 유형은 여러 가지 용도에 최적화되어 있습니다. 배열, 목록 (벡터), 해시 테이블 (맵 구현), 사전, 컬렉션, 스택, 대기열 등으로 처리 될 수 있습니다. 배열 값은 다른 배열 일 수 있으므로 트리 및 다차원 배열도 가능합니다.


문서 는 다음과 같이 설명 합니다.

An array in PHP is actually an ordered map.

그래서 예, 그들은 항상 주문됩니다. 배열은 해시 테이블 로 구현됩니다 .


보내는 사람 PHP 매뉴얼 :

배열 이 정렬됩니다. 다양한 정렬 기능을 사용하여 순서를 변경할 수 있습니다. 자세한 내용은 배열 함수 섹션을 참조하십시오.

나는 그들이 주문되었고 내가 가진 모든 프로젝트에서 일관되게 작동했다는 사실에 의존했습니다.

참고 URL : https://stackoverflow.com/questions/10914730/are-php-associative-arrays-order

반응형