>백엔드 개발 >PHP 문제 >PHP의 2차원 배열에서 특정 데이터 열을 삭제하는 방법

PHP의 2차원 배열에서 특정 데이터 열을 삭제하는 방법

PHPz
PHPz원래의
2023-04-25 17:36:161206검색

PHP에서 2차원 배열은 매우 일반적으로 사용되는 데이터 구조입니다. 2차원 배열 연산을 수행하다 보면 특정 컬럼의 데이터를 삭제해야 하는 경우가 있는데, 이런 상황이 비교적 자주 발생한다. 그렇다면 PHP 2차원 배열에서 특정 열의 데이터를 삭제하는 방법은 무엇입니까? 이번 글에서는 이에 대해 자세히 소개하겠습니다.

삭제 방법 1: foreach 루프를 사용하여 특정 열 삭제

PHP에서는 foreach 루프를 사용하여 2차원 배열을 순회하고 순회 프로세스 중에 지정된 열을 삭제할 수 있습니다. 구체적인 아이디어는 다음과 같습니다.

1. foreach 루프를 통해 배열의 각 열을 꺼냅니다.

2. 지정된 열을 삭제하려면 unset 함수를 사용하세요.

3. 삭제된 열을 배열로 재구성합니다.

코드 예:

$arr=array(
        array('id'=>1,'name'=>'张三','age'=>18),
        array('id'=>2,'name'=>'李四','age'=>19),
        array('id'=>3,'name'=>'王五','age'=>20)
);

foreach($arr as &$v){
    unset($v['name']);  //删除某一列
}
unset($v);  //重置$v的引用

print_r($arr);

삭제 방법 2: array_map 함수를 사용하여 특정 열 삭제

PHP에서는 array_map 함수를 사용하여 특정 열을 삭제할 수도 있습니다. 구체적인 아이디어는 다음과 같습니다.

1. array_map 함수를 사용하여 배열의 각 요소(즉, 각 행)에 대해 연산을 수행하고 지정된 열을 삭제합니다.

2. 삭제된 배열을 새 배열로 재구성합니다.

코드 예:

$arr=array(
        array('id'=>1,'name'=>'张三','age'=>18),
        array('id'=>2,'name'=>'李四','age'=>19),
        array('id'=>3,'name'=>'王五','age'=>20)
);

//回调函数:删除某一列
function delete_col($arr,$key){
    unset($arr[$key]);
    return array_values($arr);
}

$new_arr=array_map('delete_col',$arr,array_fill(0,count($arr),'name'));

print_r($new_arr);

코드 설명:

array_map() 함수는 배열의 각 요소에 대한 함수를 콜백하고 새 배열을 반환하는 것입니다. 여기서 콜백 함수는 delete_col() 함수인데, 이 함수는 삭제할 열(즉, 이름 열)의 배열과 키라는 두 가지 매개변수를 받습니다. 함수 본문에서는 unset()을 사용하여 지정된 열을 삭제한 다음 array_values()를 사용하여 배열의 키를 재배열하고 마지막으로 새 배열을 반환합니다.

삭제 방법 3: 특정 열을 삭제하려면 array_column 함수를 사용하세요.

PHP에서는 array_column 함수를 사용하여 특정 열을 삭제할 수도 있습니다. 구체적인 아이디어는 다음과 같습니다.

1. 먼저 array_column 함수를 사용하여 지정된 열의 값을 가져옵니다.

2. array_diff 함수를 사용하여 원본 배열에서 얻은 열 값을 삭제합니다.

코드 예:

$arr=array(
        array('id'=>1,'name'=>'张三','age'=>18),
        array('id'=>2,'name'=>'李四','age'=>19),
        array('id'=>3,'name'=>'王五','age'=>20)
);

$column=array_column($arr,'name');  //获取指定列
$new_arr=array_map(function($v) use($column){
    return array_diff_key($v,$column);   //删除指定列
},$arr);

print_r($new_arr);

코드 설명:

array_column() 함수는 지정된 열을 배열로 반환하는 함수입니다. 따라서 $column 배열에 저장되는 것은 2차원 배열의 name 컬럼이다. 그런 다음 array_map 함수를 사용하여 원래 배열을 순회하고 array_diff_key 함수를 사용하여 원래 배열에서 지정된 열을 삭제한 다음 마지막으로 새 배열을 반환합니다.

요약

PHP 2차원 배열에서 열을 삭제하는 작업의 경우 foreach 루프, array_map 함수 또는 array_column 함수를 사용하여 이를 달성할 수 있습니다. 실제 작업에서는 특정 시나리오에 따라 적절한 방법을 선택하여 효율적이고 간단한 결과를 얻을 수 있습니다.

위 내용은 PHP의 2차원 배열에서 특정 데이터 열을 삭제하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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