개발/php
[php] object key value 세팅 방법
효벨
2025. 8. 27. 15:00
728x90
반응형
[php] object key value 세팅 방법

안녕하세요!
개발을 하다보면
array 나 object 를 사용할때
key 와 value 를 이용해서 재조합하고는 하는데요!
오늘은
php 에서
object 를 key value 로 재조합하는 예제를 공유해보려고 합니다!
우선 아래와 같은 object 데이터가 있다고 가정하고,
$users = [
(object) ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
(object) ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
(object) ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com'],
];
위 데이터를
object 로 재조합하는데 index 번호가 id 값이 들어가게 설정하려면
아래와 같이 하시면 됩니다!
$userMap = [];
foreach ($users as $user) {
// 객체의 'id' 속성을 키로, 전체 객체를 값으로 사용
$userMap[$user->id] = $user;
}
// $userMap 배열을 출력
print_r($userMap);
/*
// 출력 결과:
Array
(
[1] => stdClass Object
(
[id] => 1
[name] => Alice
[email] => alice@example.com
)
[2] => stdClass Object
(
[id] => 2
[name] => Bob
[email] => bob@example.com
)
[3] => stdClass Object
(
[id] => 3
[name] => Charlie
[email] => charlie@example.com
)
)
*/
추가적으로 라라벨에서는
아래와 같이 mapWithKeys 메소드를 사용할 수도 있습니다!
use App\Models\User;
$users = User::all(); // User 모델의 컬렉션을 가져옵니다.
// mapWithKeys()를 사용하여 id를 키로 하는 연관 배열 생성
$userMap = $users->mapWithKeys(function ($user) {
// 키와 값을 배열로 반환합니다.
return [$user->id => $user];
});
// $userMap은 Collection 객체입니다.
// toArray() 메서드로 순수 PHP 배열로 변환할 수 있습니다.
$userArray = $userMap->toArray();
print_r($userArray);
/*
// 출력 결과 (위와 동일):
Array
(
[1] => App\Models\User Object (...)
[2] => App\Models\User Object (...)
[3] => App\Models\User Object (...)
)
*/
참고들 하시구요!
도움이 되셨다면, 구독/공감/댓글 부탁드립니다!
감사합니다!
반응형