>백엔드 개발 >PHP 문제 >PHP 배열에 열 추가

PHP 배열에 열 추가

PHPz
PHPz원래의
2023-05-07 13:15:08970검색

PHP에서 배열은 여러 값을 저장하는 데이터 구조입니다. 때로는 데이터베이스 쿼리 후 결과 집합에 몇 가지 추가 정보를 추가하는 등 배열에 열을 추가해야 하는 경우도 있습니다. 이 기사에서는 PHP 배열에 열을 추가하는 다양한 방법을 소개합니다.

방법 1: 루프를 사용하여 새 열 할당

첫 번째 방법은 루프를 사용하여 배열을 순회하고 각 배열 요소에 열 값을 추가하는 것입니다. 예를 들어, 다음과 같은 배열이 있다고 가정해 보겠습니다.

$persons = array(
  array('name' => 'Tom', 'age' => 24),
  array('name' => 'John', 'age' => 28),
  array('name' => 'Sarah', 'age' => 23)
);

이제 각 사람에 대한 "성별" 열을 추가하고 값은 이름에 따라 자동으로 결정됩니다. 다음 코드를 사용하여 이 문제를 해결할 수 있습니다.

foreach ($persons as &$person) {
  $name = $person['name'];
  if (substr($name, -1) == 'a') {
    $person['gender'] = 'Female';
  } else {
    $person['gender'] = 'Male';
  }
}

위 코드에서는 foreach 루프를 사용하여 각 사람의 배열 요소를 반복했습니다. 루프에서는 각 사람의 배열 요소에 "성별" 열을 추가하고 여기에 값을 할당합니다.

$person 변수는 참조로 전달되므로 & 기호를 사용한다는 점에 유의하세요. 이렇게 하면 $person이 참조하는 요소가 루프에서 수정될 때 원래 배열의 요소도 수정됩니다.

방법 2: array_map 함수를 사용하여 열을 추가합니다.

두 번째 방법은 PHP에 내장된 array_map 함수를 사용하여 열을 추가하는 것입니다. array_map 함수는 배열의 각 요소에 함수를 적용하고 새 배열을 반환합니다. 예를 들어 다음 코드는 다음과 같습니다.

$persons = array(
  array('name' => 'Tom', 'age' => 24),
  array('name' => 'John', 'age' => 28),
  array('name' => 'Sarah', 'age' => 23)
);

$gender_mapper = function($person) {
  $name = $person['name'];
  if (substr($name, -1) == 'a') {
    $person['gender'] = 'Female';
  } else {
    $person['gender'] = 'Male';
  }
  return $person;
};

$new_persons = array_map($gender_mapper, $persons);

위 코드에서는 $gender_mapper라는 익명 함수를 정의하고 이 함수를 사용하여 array_map 함수를 호출합니다. $gender_mapper 함수는 $person 배열 매개변수를 받아들이고 각 사람에 대한 "성별" 열을 추가한 다음 마지막으로 증가된 $person 배열을 반환합니다.

array_map 함수는 원래 배열이 아닌 새 배열을 반환한다는 점에 유의하세요. 따라서 결과를 새 변수 $new_persons에 저장해야 합니다.

방법 3: array_walk 함수를 사용하여 열을 추가합니다.

세 번째 방법은 PHP에 내장된 array_walk 함수를 사용하여 열을 추가하는 것입니다. array_walk 함수는 배열의 각 요소를 순회하고 허용된 콜백 함수의 요소에 대해 작동하며 원래 배열에서 직접 수정할 수 있습니다.

$persons = array(
  array('name' => 'Tom', 'age' => 24),
  array('name' => 'John', 'age' => 28),
  array('name' => 'Sarah', 'age' => 23)
);

function add_gender(&$person) {
  $name = $person['name'];
  if (substr($name, -1) == 'a') {
    $person['gender'] = 'Female';
  } else {
    $person['gender'] = 'Male';
  }
}

array_walk($persons, 'add_gender');

위 코드에서는 add_gender라는 함수를 정의하고 이 함수를 사용하여 array_walk 함수를 호출했습니다. add_gender 함수는 $person 배열 매개변수를 받아들이고 배열의 각 사람에 대한 "성별" 열을 추가합니다.

add_gender 함수의 $person 매개변수는 참조로 전달되며 이는 콜백 함수에서 $person 배열의 요소를 수정한다는 의미이기도 합니다.

요약

위에 소개된 내용은 PHP 배열에 열을 추가하는 세 가지 방법입니다. 첫 번째 방법은 루프를 사용하여 새 열을 할당하는 것이고, 두 번째 방법은 array_map 함수를 사용하는 것이며, 세 번째 방법은 array_walk 함수를 사용하는 것입니다. 특정 요구 사항과 코드 구현에 따라 이러한 방법 중 하나 이상을 선택할 수 있습니다.

위의 방법은 모두 연관 배열에 대한 것이라는 점에 유의해야 합니다. 일반 배열에 열을 추가하려면 [] 연산자를 사용하면 됩니다. 예:

$arr = array(1, 2, 3);
$arr[] = 4; // 数组末尾增加一列

위 내용은 PHP 배열에 열 추가의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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