>  기사  >  백엔드 개발  >  PHP의 다차원 배열에서 지정된 열을 추출하는 방법의 전체 목록

PHP의 다차원 배열에서 지정된 열을 추출하는 방법의 전체 목록

angryTom
angryTom앞으로
2019-10-16 09:37:162812검색

PHP의 다차원 배열에서 지정된 열을 추출하는 방법의 전체 목록

PHP에서 다차원 배열의 특정 열을 추출하는 기능은 매우 일반적인 기능이기 때문에 PHP 5.5 이후에는 새로운 기능이 추가되었습니다. .0 전용 함수 array_column(). 물론 PHP 버전이 5.5.0 미만이라면 다른 방법을 사용해야 합니다.

예를 들어 다음 배열의 경우:

$user = array(
    '0' => array('id' => 100, 'username' => 'a1'),
    '1' => array('id' => 101, 'username' => 'a2'),
    '2' => array('id' => 102, 'username' => 'a3'),
    '3' => array('id' => 103, 'username' => 'a4'),
    '4' => array('id' => 104, 'username' => 'a5'),
);

usename 열을 추출하여 다음과 같이 만들고 싶습니다.

$username = array('a1', 'a2', 'a3', 'a4', 'a5');
#🎜 🎜#방법은 다음과 같습니다.

1 array_column 함수 메서드

PHP 내장 array_column() 함수를 사용하는 것이 가장 간단한 방법입니다. 제한 사항은 PHP 버전에서는 다음과 같습니다. 5.5.0 이상, 메서드:

$username = array_column($user, 'username');

2 array_walk 함수 메서드

array_walk() 함수는 콜백에 사용자 정의 함수를 사용합니다. 현재 함수를 구현하기 위한 요소 처리:

$username = array();
array_walk($user, function($value, $key) use (&$username){
    $username[] = $value['username'];
});

3 array_map function method

array_map() 함수 및 array_walk() 함수 마찬가지로 적용 주어진 배열의 셀에 대한 콜백 함수.

$username = array();
array_map(function($value) use (&$username){
    $username[] = $value['username'];
}, $user);

실제 사용에서는 array_map()을 사용하여 PHP 내장 array_column()과 동일한 기능을 가진 함수를 작성할 수 있습니다.

/**
 * 获取二维数组指定的一列,并以一维数组格式返回
 * 作用和PHP5.5.0中的array_column()函数一样
 * @param $input array 需要取出数组列的多维数组(或结果集)
 * @param $column_key string 需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是NULL,此时将返回整个数组
 * @param $index_key string 作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
 * @return array|null
 */
function array_column($input, $column_key, $index_key = null) {
    $arr = array_map(function($d) use ($column_key, $index_key) {
        if (!isset($d[$column_key])) {
            return null;
        }
        if ($index_key !== null) {
            return array($d[$index_key] => $d[$column_key]);
        }
        return $d[$column_key];
    }, $input);
    if ($index_key !== null) {
        $tmp = array();
        foreach ($arr as $ar) {
            $tmp[key($ar)] = current($ar);
        }
        $arr = $tmp;
    }
    return $arr;
}

4 foreach 루프 방법# 🎜🎜#foreach 루프는 위의 방법보다 효율성이 약간 떨어지지만 간단하고 이해하기 쉽습니다.

$username = array();
foreach ($user as $value) {
    $username[] = $value['username'];
}

5 array_mapvariant

방법은 다음과 같으며, 이는 $user 배열에서 각 항목 값의 시작 값을 제거한다는 의미입니다. 이동된 값을 가져옵니다. 분할된 값은 새로운 배열로 사용됩니다. 다음과 같이 새 배열 $username의 키는 여전히 원래 배열 $user의 키입니다.

$username = array_map('array_shift', $user);

참고: 이 함수는 사용자 이름 열이 아닌 $user의 ID 열을 가져옵니다.

또한 2차원 배열 각 항목의 시작 열이나 끝 열을 가져와야 하는 경우 다음과 같이 할 수도 있습니다.

$username = array_map('reset', $user);
$username = array_map('end', $user);

함수 이 세 가지 변형 방법 중 첫 번째 또는 마지막 열을 가져올 때 유용하지만 복잡한 배열에서는 역할을 수행하기가 어렵습니다.

더 많은 PHP 관련 지식을 보려면

PHP中文网

을 방문하세요!

위 내용은 PHP의 다차원 배열에서 지정된 열을 추출하는 방법의 전체 목록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 www.awaimai.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제