IT

반복하지 않고 다차원 배열에서 "키"배열을 얻는 방법

lottoking 2020. 8. 21. 08:03
반응형

반복하지 않고 다차원 배열에서 "키"배열을 얻는 방법


다음과 같은 다차원 배열 (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.3

Wordpress를 사용하지 않는 경우 코드가 오픈 소스 제공 프로젝트에 코드를 복사하여 넣을 수 있습니다 (그리고 함수의 이름을 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);

이것과 위의 모든 방법은 장면 뒤에서 반복됩니다.)

참고 URL : https://stackoverflow.com/questions/7994497/how-to-get-an-array-of-specific-key-in-multidimensional-array-without-looping

반응형