source

PHP Associative Arrays가 주문되었습니까?

manycodes 2022. 11. 26. 13:56
반응형

PHP Associative Arrays가 주문되었습니까?

저는 python 배경에서 왔고 유사한 python 데이터형은 키 값 쌍의 순서 없는 집합입니다.

PHP 어소시에이션 어레이가 오더되어 있지 않은지 궁금합니다.주문하신 것 같습니다.

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

var_dump($test);    

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

테스트는 항상 bar보다 먼저 이루어지기 때문에 이 어레이를 슬라이스할 수 있습니다.그럼 항상 php 버전에 걸쳐서 주문할 수 있는 건가요?어레이를 선언한 주문만 해당합니까?내부적으로는 어레이에 [0]을 배치하기 위해 '테스트'를 가리키고 있습니다.나는 http://php.net/manual/en/language.types.array.php을 읽었지만 이 문제에 대해 그다지 명확하게 설명하지 못했다.답변 감사합니다.타이

PHP 관련 배열(및 숫자 배열)이 주문되며, PHP는 , , 및 같은 배열 키 순서를 처리하기 위한 다양한 함수를 제공합니다.

또한 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.

네, 항상 주문되어 있습니다.어레이는 해시 테이블로 구현됩니다.

배열은 순서가 매겨져 있지만 키가 정렬되어 있는 것이 아니라 지정된 순서로 정렬되어 있는 것을 의미합니다.여기서 정확한 순서는 지정되지 않았지만 키와 값의 쌍을 입력한 순서인 것으로 보입니다.

그것을 이해하기 위해, 명령을 받지 않는 것이 무엇을 의미할까요?관계형 데이터베이스의 관계를 생각해 보세요.관계는 본질적으로 순서가 정해져 있지 않습니다.질문을 사용하여 접근하면 order 구를 지정하지 않는 한 데이터베이스는 동일한 데이터를 임의의 순서로 반환할 수 있습니다.데이터를 수정하지 않았더라도 동일한 데이터를 다른 순서로 반환할 수 있습니다.

php 매뉴얼:

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

나는 그것들이 주문되어 있고 내가 해 온 모든 프로젝트에서 일관되게 작동한다는 사실에 의존해 왔다.

언급URL : https://stackoverflow.com/questions/10914730/are-php-associative-arrays-ordered

반응형