반복하지 않고 다차원 배열에서 "키"배열을 얻는 방법
다음과 같은 다차원 배열 (MySQL 또는 서비스에서 검색)이 어디에서 가정 해 보겠습니다.
array(
array(
[id] => xxx,
[name] => blah
),
array(
[id] => yyy,
[name] => blahblah
),
array(
[id] => zzz,
[name] => blahblahblah
),
)
id하나의 " 내장 "php 함수 호출 에서 의 배열을 찾을 수 있습니까 ? 또는 한 줄의 코드?
나는 이것을 루핑과 가치를 알고 이것이 필요하지 않습니다.
foreach($users as $user) {
$ids[] = $user['id'];
}
print_r($ids);
어쩌면 array_map()일부와는 call_user_func_array()마법을 할 수 있습니다.
PHP 5.5부터 다음에서 사용할 수 있습니다 .array_column
$ids = array_column($users, 'id');
php 5.3부터 다음 과 같이 익명 함수와 함께 사용할 수 있습니다 .array_map
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
(기술적으로 PHP 4.0.6+) 이전에는대신 다음을사용하여 익명 함수를 만들어야합니다.create_function
$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);
PHP 5.5 이상
PHP5.5 이상부터는 array_column ()을 사용할 수 있으며, 이로 인해 아래의 모든 것이 쓸모 없게됩니다.
PHP 5.3 이상
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
@phihag의 솔루션은 PHP 5.3.0부터 PHP에서 완벽하게 작동합니다. 그 전에 지원이 필요한 경우 wp_list_pluck을 복사해야합니다.
PHP <5.3
Wordpress 3.1 이상Wordpress는 문제를 해결하는 Wordpress를 사용하는 경우 wp_list_pluck 이라는 함수가 있습니다.
PHP <5.3Wordpress를 사용하지 않는 경우 코드가 오픈 소스 제공 프로젝트에 코드를 복사하여 넣을 수 있습니다 (그리고 함수의 이름을 array_pick과 같이 원하는 이름으로 변경). 여기에서 소스보기
id의 첫-th 배열 키인 경우 다음을 수행합니다.
$ids = array_map('current', $users);
그러나 반드시 이것에 의존성이 있어야합니다. :)
array_reduce()보다 기능적인 접근 방식을 선호하는 경우 에도 사용할 수 있습니다.
예를 들면 :
$userNames = array_reduce($users, function ($carry, $user) {
return $user['name'];
}, []);
또는 당신이 화려하고 페이지
$userNames = [];
array_map(function ($user) use (&$userNames){
$userNames[]=$user['name'];
}, $users);
이것과 위의 모든 방법은 장면 뒤에서 반복됩니다.)
'IT' 카테고리의 다른 글
| CentOS에 Java SDK를 설치하는 방법은 무엇입니까? (0) | 2020.08.21 |
|---|---|
| Vim : 디렉토리의 파일에 설정 적용 (0) | 2020.08.21 |
| 오류 : Typescript 기능 1.5. (0) | 2020.08.21 |
| 발행 / 구독 패턴 (JS / jQuery에서)을 사용하는 이유는 무엇입니까? (0) | 2020.08.21 |
| IOS에서 신속하게 내 응용 프로그램의 화면 잠금을 방지하는 방법 (0) | 2020.08.21 |