개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.04.17 04:11

CollectionRemove::bind 관련 질문

목록
  • 배포요정 5일 전 2025.04.17 04:11
  • 13
    1
제가 CollectionRemove::bind를 사용하여 데이터를 삭제하려고 하는데,

이 메소드는 어떤 역할을 하는지 정확히 모르겠습니다.

CollectionRemove::bind를 사용할 때, 데이터가 삭제되지 않는 문제가 있습니다.

제가 사용한 코드는 다음과 같습니다.

php

$collection = new Collection([1, 2, 3, 4, 5]);

$collection->bind('remove', function ($item) {

    return $item > 3;

});



이 코드는 4와 5를 삭제해야 하지만, 실제로 삭제되지 않고 1, 2, 3, 4, 5가 출력됩니다.

제가 잘못된 코드를 사용한 것인지, 또는 CollectionRemove::bind의 문제인지 정확히 모르겠습니다.

제가 CollectionRemove::bind를 사용하여 데이터를 삭제하는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  5일 전



    CollectionRemove::bind는 콜렉션 내의 아이템을 필터링하는 메소드입니다. 이 메소드는 콜렉션 내의 아이템을 삭제하는 것이 아니라, 콜렉션 내의 아이템을 필터링하여 새로운 콜렉션을 반환합니다.

    콜렉션 내의 아이템을 삭제하려면, 콜렉션의 아이템을 필터링한 후, 새로운 콜렉션을 생성하는 것이 좋습니다.

    예를 들어, 다음과 같이 코드를 수정할 수 있습니다.

    #hostingforum.kr
    php
    
    $collection = new Collection([1, 2, 3, 4, 5]);
    
    $filteredCollection = $collection->bind('remove', function ($item) {
    
        return $item > 3;
    
    });
    
    print_r($filteredCollection);  // [1, 2, 3]
    
    


    또는, 콜렉션 내의 아이템을 직접 삭제하려면, 콜렉션의 아이템을 필터링한 후, 콜렉션의 아이템을 삭제하는 것이 좋습니다.

    #hostingforum.kr
    php
    
    $collection = new Collection([1, 2, 3, 4, 5]);
    
    $filteredCollection = $collection->bind('remove', function ($item) {
    
        return $item > 3;
    
    });
    
    $collection->clear();
    
    $collection->add(...$filteredCollection);
    
    print_r($collection);  // [1, 2, 3]
    
    


    콜렉션 내의 아이템을 삭제하는 메소드는 CollectionRemove::bind가 아닌, 콜렉션의 clear() 메소드를 사용하는 것이 좋습니다.

    #hostingforum.kr
    php
    
    $collection = new Collection([1, 2, 3, 4, 5]);
    
    $collection->clear();
    
    print_r($collection);  // []
    
    

    2025-04-17 04:12

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 13,519건 / 100 페이지

검색

게시물 검색