>  기사  >  백엔드 개발  >  PHP의 다차원 배열에서 지정된 열을 추출하는 방법을 요약합니다.

PHP의 다차원 배열에서 지정된 열을 추출하는 방법을 요약합니다.

coldplay.xixi
coldplay.xixi앞으로
2020-08-11 16:56:182830검색

PHP의 다차원 배열에서 지정된 열을 추출하는 방법을 요약합니다.

이 문서의 예제에서는 PHP의 다차원 배열에서 지정된 열을 추출하는 방법을 설명합니다. 참고를 위해 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.

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

관련 학습 권장 사항: php 프로그래밍(동영상)

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

$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 함수 방법

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_map 변형

방법은 다음과 같습니다. $user 배열에서 각 항목 값의 시작 값을 제거하고 제거된 값을 새 배열로 얻는다는 의미입니다. 다음과 같이 새 배열 $username의 키는 여전히 원래 배열 $user의 키입니다.

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

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

또한 2차원 배열에서 각 항목의 첫 번째 열이나 마지막 열을 가져와야 하는 경우 다음과 같이 할 수도 있습니다.

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

이 세 가지 변형 방법은 상대적으로 제한되어 있으며 항목을 가져올 때만 유용합니다. 첫 번째 열이나 마지막 열은 복잡한 배열에서 작동하기 어렵습니다.

관련 추천: 프로그래밍 비디오 강좌

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

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