>  기사  >  php教程  >  PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.

PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.

WBOY
WBOY원래의
2016-08-26 10:13:051819검색

이 글은 코드 공유를 위한 글입니다. 직장에서 "큰" 코드를 보고 공유하고 싶었습니다.

구체적으로 라이브러리에서 다음과 같은 2차원 배열을 읽어옵니다.

코드 목록:

[php] 일반 보기 복사
PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.
  1. $user = 배열(
  2. 0 => 배열(
  3. 'id' => 1,
  4. '이름' => '장산',
  5. '이메일' => 'zhangsan@sina.com',
  6. ),
  7. 1 => 배열(
  8. 'id' => 2,
  9. '이름' => '이思',
  10. '이메일' => 'lisi@163.com',
  11. ),
  12. 2 => 배열(
  13. 'id' => 5,
  14. '이름' => '王五',
  15. '이메일' => '10000@qq.com',
  16. ),
  17.  … 
  18. )


위 배열 형식은 주로 PHP+MYSQL을 사용해본 모든 사람에게 친숙합니다.

이제 두 가지 요구 사항이 있습니다.

1) 인덱스 "id" 집합을 가져와서 1비트 배열로 저장합니다. 즉, array(1,2,5)를 가져옵니다.

친구들이 어떻게 쓸지 모르겠어요?

과거에 썼던 방식이라면 직접 foreach한 다음 array_push를 사용하여 배열 변수에 하나씩 입력했을 것입니다. 이것은 또한 달성될 수 있다. 그러나 이러한 작성 방식은 성능에 영향을 미칩니다. 왜냐하면 PHP의 기본 기능을 사용하는 것이 루프보다 확실히 더 효율적이기 때문입니다.

코드 목록:

[php] 일반 보기 복사
PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.
  1. $ids = 배열()
  2. $ids = array_map('array_shift', $user)


위 코드를 사용하면 원하는 결과를 얻을 수 있습니다. 함수 사용 방법은 매뉴얼을 참고하세요.

사실 여기에는 array_column 함수를 사용하는 또 다른 솔루션이 있지만 이 함수에는 PHP 버전 요구 사항이 필요합니다(PHP 5 >= 5.5.0)

코드 목록:

[php] 일반 보기 복사
PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.
  1. $ids = 배열()
  2. $ids = array_column($user, 'id')

이 경우 효율성은 확실히 높아집니다.


2) 인덱스 "name" 집합을 가져와서 1비트 배열로 저장합니다. 즉, 배열('Zhang San','Li Si','Wang Wu')을 가져옵니다.

이전 작성 방법에 따르면 여전히 foreach가 동일하고 array_push가 배열 변수에 하나씩 채워 넣습니다. 효율적인 코드 목록을 참조하세요.

코드 목록:

[php] 일반 보기 복사
PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.
  1. $names = 배열()
  2. $names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$ w["이름"];return $v;'))


결과 얻기:

[php] 일반 보기 복사
PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.PHP는 2차원 배열의 특정 키 컬렉션을 가져옵니다.
  1. 배열(
  2. 1 => '장산',
  3. 2 => '이思',
  4. 5 => '왕오',
  5. )

자주 뜯는 아이들 신발, 빨리 고쳐주세요!

본 글은 CSDN에서 발췌한 글입니다. 재인쇄시 출처를 꼭 밝혀주세요! http://blog.csdn.net/liruxing1715/article/details/22925575

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.