라라벨은 쿼리시 Collection객체를 리턴하므로, Collection의 toArray()를 써서 배열로 바꿔주셔야 합니다
https://laravel.kr/docs/5.6/collections#method-toarray
$users = \App\User::get(); array_column($users->toArray(), '거주지')
Collection에는 다양한 기능이 있으므로 배열로 바꾸지 마시고요, array_column과 같은 기능은 Collection에서 아래처럼 쓸수도 있습니다
https://laravel.kr/docs/5.6/collections#method-pluck
$users = \App\User::get(); $users->pluck('거주지')
마찬가지로 비교하여 다른걸 찾아내는 diff 같은 함수도 쓸수 있습니다
https://laravel.kr/docs/5.6/collections#method-diff
$address1 = collect(['부산', '서울']); // collect()로 감싸면 배열이 Collection이 됩니다 $address2 = collect(['광주', '서울', '부산']); $diff = $address2->diff($address1); // $diff값: ['광주']
일단 첫번째 문제는 catchu87 님 말씀데로 첫번째 파미미터 데이터 형에 대한 문제 같고
두번째는 좀 말이 안되는 상황 같습니다.
배열을 만들게 되면,
같은 배열 내에서는 같은 키값으로 중복으로 설정 할수 없습니다.
뒤에 것이 앞에것을 덮어씌우게 되는게
1배열 [ 거주지: 부산 , 거주지: 서울 ]
2배열 [ 거주지: 광주 ,거주지:서울 ,거주지: 부산]
이런 배열은 있을수 없을 것 같습니다.
<?php $input = [ ['거주지' => '부산', '거주지' => '서울'], ['거주지' => '광주', '거주지' => '서울', '거주지' => '부산'] ]; print_r($input); /* Array ( [0] => Array ( [거주지] => 서울 ) [1] => Array ( [거주지] => 부산 ) ) */
첫번째는 파라미터 관련문제인거같은데
넘겨주는 파라미터 데이터 형태를 array형식으로 하라는거 같네요.
두번째는 A배열에서 B배열의 항목을 제외하고 싶을떄는
array_key_exist 라는 함수를 활용해서
B배열을 foreach 로 순환하면서 A배열의 값을 체크 및 delete 방식
또는 new Array 에 등록시키는 방법을 하는게 어떨까요?
\App\User::get();
이런식으로 불러온 데이터들이
이름 : 홍길동 , 나이 : 14 , 거주지 : 서울 ....
이름 : 태스트 , 나이 : 12 , 거주지 : 부산 ....
이런 데이터들을 갖고 있으면 사는곳만 따로 빼서 배열을 만드려고 하고 있습니다.
거주지: 서울 , 거주지:부산 이렇게요
메뉴얼 보니 array_column(배열 , 컬럼이름) 이렇게 사용하면
원하는 컬럼만 따로 빼내어 배열을 만들어 주는데 사용해보면
array_column() expects parameter 1 to be array, object given
위와 같은 에러가 나는데 어떤 부분을 확인해보면 될까요 ??
그리고 위와같이 사는곳만 따로 빼내어서 배열을 만들었다면
1배열 [ 거주지: 부산 , 거주지: 서울 ]
2배열 [ 거주지: 광주 ,거주지:서울 ,거주지: 부산]
이 두가 지 배열을 비교해서 중복된 데이터 서울은 지워주고 중복된 데이터는 지워주고 중복되지 않은 데이터
광주만 나오게 하는 함수도 있을까요 ?? 많은 질문 죄송합니다 ㅠㅠ