조건에 맞는 배열 값의 개수 구하기?
본문
오늘도 도움을 청해봅니다. ㅜ.ㅜ;;
세 개의 변수가 아래와 같은 배열값을 가지고 있습니다.
- $wr_1 : [1],[2]
- $wr_2 : [1],[2],[3],[4],[5]
- $wr_3 : [1],[2],[3],[4],[5]
이때 $wr_1[1], $wr_2[1]의 값을 가지는 $wr_3[1]의 갯수를 구하고 싶은데요..
어떤식으로 코딩을 해야할까요? 혹 참고할 만한 내용이 있으면 공유 좀 부탁드리겠습니다.
답변 4
$a = array_intersect($wr_1[1],$wr_3[1]); // $wr_1[1]과 $wr_3[1] 배열의 중복값만
$b = array_intersect($wr_2[1],$a) // $wr_2[1] 과 위에서 구한 $a의 중복값만.
$cnt = count($b)
남이 알아먹을 수있는 질문이 아닙니다
$wr_1[1]= 어떤 값인지
$wr_2[1] = 어떤 값인지
$wr_3[1] = 값이 어떤 모양으로 들어 있는지 실제 사용하는 값을 넣어서 질문하면 금방 알아먹을 텐데
위 질문으로는 제대로 이해할 수 있는 사람이 없으리라 생각됩니다
- $wr_1 : 1,2
- $wr_2 : 1,2,3,4,5
- $wr_3 : 1,2,3,4,5
이때 $wr_1[1], $wr_2[1]의 값을 가지는 $wr_3[1]의 갯수를 구하고 싶은데요..
==
전반적인 컨텍스를 알면 이해하기 좋겠습니다.
질문이 좀 애매하네요
적어주신 샘플 데이터를 기준으로 봤을때
wr_3 의 특정값의 갯수를 가져오고 싶은거는 이해했습니다
배열에서 값을 카운트 하기 위해서는
array_count_values
를 사용하시면 됩니다
$arr = [1, 'hello', 1, 'world', 'hello'];
print_r(array_count_values($arr));
/* Array( [1] => 2 [hello] => 2 [world] => 1 ) */
이런식으로 나옵니다
근데 조건을 거신것이
$wr_1[1], $wr_2[1]의 값을 가지는 이라고 했는데
위샘플에서 wr_1[1] 은 2 이고 wr_2[1] 도 2입니다
그럼 wr_3 을 값을 구하는 조건이 wr_3 배열에서 값이 2인것을 구한다는 얘기인지 이해가 안됩니다
wr_1 의 1번째 배열값과 wr_2 의 1번째 배열값이 다를수있으므로
조건이 and 인지 각각 구하는것인지를 먼저 정리하셔야 하고요
여하튼 조건 정리를 다시하시고
해당 value 는 array_count_values 로 사용해서 가져오시면 될꺼같습니다
!-->