배열과 해시 PHP의 차이점은 무엇입니까? PHP에서 Array와 Hash의 차이점은 무엇입니까?
배열 :array(1,2,3...)
해시 : 서로 다른 또는 동일한
array(key1=value1, key2=value2, ...)
입니까?
※ 예를 들어 함수 인수를 사용하면 배열이 해시에 효과적입니까?
종래의 언어로 구별하여 사용했기 때문에 의아해합니다.
배열과 해시 PHP의 차이점은 무엇입니까? PHP에서 Array와 Hash의 차이점은 무엇입니까?
배열 :array(1,2,3...)
array(key1=value1, key2=value2, ...)
입니까?
※ 예를 들어 함수 인수를 사용하면 배열이 해시에 효과적입니까?
종래의 언어로 구별하여 사용했기 때문에 의아해합니다.
설명하는 것은 모두 배열입니다. 이 둘의 유일한 차이점은 명시 적으로 두 번째 키를 설정한다는 것입니다. 따라서이 키는 associative arrays으로 알려져 있습니다. 나는 당신이 (Perl?)에서 해시 용어를 어디서 얻었는지 모르지만, PHP에서 언급 한 것은 아니다. 이 작업을 수행하는 경우
따라서, 예를 들어, :
는$foo = array(1,2,3,4,5);
print_r($foo);
는 출력은 다음과 같습니다 당신이 볼 수 있듯이
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
는, 키가 당신은 넣어 개별 값에 액세스 할 수 그럼에도 불구하고 거기에 있습니다. 그래서이 배열은 근본적으로 연관되어 있습니다. 배열의 다른 "유형"은 정확히 같은 방식입니다. 단, 자동 숫자 인덱스 대신 값 키를 액세스하려고합니다 (사용자가 입력 한 키는 숫자 일 수도 있음).
$bar = array('uno' => 'one', 'dos' => 'two');
print_r($bar);
겠습니까 출력 : 당신이 다음 예상대로
Array
(
[uno] => one
[dos] => two
)
, print $bar['one']
것 출력 uno
, 첫 번째 예에서 $foo[0]
을하고 출력 1
것하고.
PHP 함수는 대부분이 배열의 이러한 "유형"중 하나를 취하여 원하는대로 처리합니다. 그러나 일부 기능은 펑키 할 수 있으므로주의해야합니다 귀하의 색인에 물건과 일부는하지 않습니다. 일반적으로 배열 기능을 사용하기 전에 설명서를 읽는 것이 가장 좋습니다. 출력이 배열의 키에 따라 달라지기 때문입니다.
자세한 내용은 read the manual이어야합니다.
실제로, PHP에는 배열이 존재하지 않는 옵션 - 연관 (해시 테이블은 기본적으로) 배열
배열에서 "세"를 제거합니다 이렇게
$ar=array("zero","one","two","three","four");
unset($ar[3]);
하고 시도가있다 배열 키 (배열이 연관되지 않음)는 동일하게 유지된다는 것을 알 수 있습니다 (0,1,2,4). 모든 일반 언어에서는 "4"에서 3으로 키의 번호를 다시 매 깁니다.
엔진 PHP에 모든 배열 (연관 또는 순차)은 해시 테이블이며 이는 단일 요소 읽기에서 가장 빠른 방법이기 때문에.
int zend_hash_init(HashTable *ht, uint nSize,hash_func_t pHashFunction, dtor_func_t pDestructor, zend_bool persistent);
int zend_hash_add(HashTable *ht, char *arrKey, uinit nKeySize, void *pData, uinit nDataSize, void **pDest)
int zend_hash_update(HashTable *ht, char *arrKey, uinit nKeySize, void *pData, uinit nDataSize, void **pDest)
int zend_hash_index_update(HashTable *ht, ulong h, void *pDate, uinit nDataSize, void **pDest)
int zend_hash_next_index_insert(HashTable *ht, void *pData, uinit nDataSize, void **pDest)
int zend_hash_add(HashTable *ht, char *arrKey, uinit nKeySize, void *pData, uinit nDataSize, void **pDest)
int zend_hash_update(HashTable *ht, char *arrKey, uinit nKeySize, void *pData, uinit nDataSize, void **pDest)
int zend_hash_index_update(HashTable *ht, ulong h, void *pDate, uinit nDataSize, void **pDest)
int zend_hash_next_index_insert(HashTable *ht, void *pData, uinit nDataSize, void **pDest)
......
플러스 UNO : P는 .. – alex
muchas 그라시아의 선생 "구동"있어 :) –
내부 데이터 유형 PHP의 내부 배열을 만들고 popolate하는 기본적인 기능이있다 배열을 HashTable이라고합니다. – VolkerK