"Joh"/> "Joh">

>백엔드 개발 >PHP 문제 >PHP 2차원 배열은 지정된 1차원 배열을 삭제합니다.

PHP 2차원 배열은 지정된 1차원 배열을 삭제합니다.

王林
王林원래의
2023-05-06 13:27:07662검색

PHP 프로그래밍에서 2차원 배열은 매우 일반적인 데이터 유형입니다. 2차원 배열은 복잡한 데이터를 저장하고 처리하는 데에도 사용됩니다. 어떤 경우에는 2차원 배열에서 특정 1차원 배열을 제거해야 할 때도 있습니다. 이 프로세스는 PHP에서 더 어려워지는 경우가 많습니다. 이번 글에서는 2차원 배열에서 지정된 1차원 배열을 삭제하는 방법을 알아 보겠습니다.

먼저 3개의 1차원 배열이 포함된 간단한 2차원 배열 예제를 살펴보겠습니다.

$students = array(
    array("name" => "John", "age" => 20, "skill" => "PHP"),
    array("name" => "Mary", "age" => 22, "skill" => "Java"),
    array("name" => "Peter", "age" => 21, "skill" => "Python")
);

Mary라는 1차원 배열을 삭제하고 싶다고 가정해 보겠습니다. 이를 어떻게 달성해야 할까요?

방법 1: foreach 루프를 사용하여 달성

가능한 해결 방법 중 하나는 foreach 루프를 사용하여 각 1차원 배열을 얻고 각 반복에서 unset() 함수를 사용하여 다음을 충족하는 1차원 배열을 삭제하는 것입니다. 정황.

foreach($students as $key => $value) {
  if($value['name'] == 'Mary') {
    unset($students[$key]);
  }
}

이 예에서 $key는 현재 반복의 키이고 $value는 현재 반복의 값입니다. 각 반복에서 이름 키를 비교하여 조건이 충족되는지 확인합니다. 일치하는 배열이 발견되면 unset() 함수를 사용하여 배열을 삭제합니다.

방법 2: array_filter()를 사용하여 구현

지정된 1차원 배열을 삭제하는 또 다른 방법은 array_filter() 함수를 사용하는 것입니다. 이 함수는 배열을 입력으로 받아들이고 기준을 충족하는 요소가 제거된 새 배열을 반환합니다.

$students = array_filter($students, function($arr) {
  return $arr['name'] !== 'Mary';
});

이 예에서는 array_filter() 함수에 익명 함수를 전달합니다. 이 함수는 $students 배열을 반복하고 각 1차원 배열을 입력 배열로 함수에 전달합니다. 익명 함수에서는 !== 연산자를 사용하여 현재 배열의 이름 키가 Mary와 같은지 비교합니다. 동일하지 않으면 array_filter() 함수는 새 배열을 반환하고 조건을 충족하는 요소는 유지됩니다.

방법 3: array_search()를 사용하여

마지막으로 array_search() 함수를 사용하여 삭제할 1차원 배열을 찾은 다음 unset() 함수를 사용하여 삭제할 수 있습니다.

$search_key = array_search('Mary', array_column($students, 'name'));
unset($students[$search_key]);

$students 배열의 모든 이름 키 값을 새 배열로 반환하려면 array_column() 함수를 사용합니다. array_search() 함수를 사용하여 이 새 배열에서 일치하는 값을 검색하고 해당 값의 키를 반환할 수 있습니다. 마지막으로 unset() 함수를 사용하여 키에 해당하는 요소를 삭제합니다.

요약:

위는 PHP 2차원 배열에서 지정된 1차원 배열을 삭제하는 세 가지 일반적인 방법입니다. 각 방법에는 장단점이 있다는 점을 기억하는 것이 중요합니다. 구현 방법을 선택할 때 코드 요구 사항에 따라 가장 적절한 방법을 선택해야 합니다.

실제 응용에서는 실제 상황에 따라 구현 방법을 선택합니다. 때로는 중첩 루프를 사용하여 문제를 해결할 수도 있지만, 데이터 양이 너무 많으면 비효율적일 수 있으므로 성능과 코드 가독성 간의 균형을 잘 유지해야 합니다. 입니다.

위 내용은 PHP 2차원 배열은 지정된 1차원 배열을 삭제합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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