배열을 함수에 전달하고 함수가 "목록"스타일 배열인지 "해시"스타일인지에 따라 다르게 동작하게하고 싶습니다. 정렬. 예컨대 : 같은배열이 연관 (해시)인지 여부를 확인하십시오.
myfunc(array("One", "Two", "Three")); // works
myfunc(array(1=>"One", 2=>"Two", 3=>"Three")); also works, but understands it's a hash
마이트 출력 뭔가 :
One, Two, Three
1=One, 2=Two, 3=Three
예 : 그것은 배열이 아닌 해시를 전달되는 것 "감지"할 때 함수가 다르게 무언가를. @lrays와 % reference가 다른 Perl 백그라운드에서 온다고 말할 수 있습니까?
해시에서 숫자 키를 잘 사용할 수 있기 때문에 키가 숫자인지 테스트 할 수 없으므로 예제가 중요하다고 생각합니다.
내가 특별히 기술적으로 해시, 같은 myfunc(array(array(1=>"One"), array(2=>"Two"), array(3=>"Three")))
이런 식으로 뭔가를 찾고 계십니까? http://stackoverflow.com/questions/173400/php-arrays-a-good-way-to-check-if-an-array-is-associative-or-sequential –
흥미로운 질문입니다. 불행히도'array ('a', 'b', 'c')'를'array (0 => 'a', 1 => 'b', 2 => 'c')'와 구별하지 않는다. – Tadeck
PHP는 항상 숫자 키'array ("1"=> "1")를 정수로 저장합니다. 그걸 알아 채지 못해. 키가 계속 증가하는 경우에만 검색하여 실제 목록과 인덱싱 된 배열을 구별 할 수 있습니다. – mario