>  기사  >  백엔드 개발  >  PHP stdClass 객체를 배열로 효율적으로 변환하는 방법은 무엇입니까?

PHP stdClass 객체를 배열로 효율적으로 변환하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-20 12:10:10217검색

How to Efficiently Convert a PHP stdClass Object to an Array?

PHP에서 stdClass를 배열로 변환

질문:

PHP stdClass 객체를 배열로 변환해야 합니다. . 그러나 (배열) 캐스팅, json_decode(true) 및 json_decode()를 사용하려고 시도하면 빈 배열이 생성되었습니다. 이 변환을 효과적으로 수행하려면 어떻게 해야 합니까?

답변:

Lazy One-Liner 방법

성능이 약간 저하되는 경우 JSON을 활용할 수 있습니다. 간결한 방식으로 이 변환을 수행하는 방법:

$array = json_decode(json_encode($booking), true);

이 방법은 먼저 객체를 인코딩합니다. JSON 문자열로 변환한 다음 다시 배열로 디코딩합니다.

stdClass를 배열로 변환

$array = (array) json_decode(json_encode($booking));

이 접근 방식은 속성 이름을 유지하지 않고 인덱스 배열을 반환합니다.

변환 stdClass를 연관 배열로

$array = json_decode(json_encode($booking), true);

두 번째 인수로 true를 전달하여 json_decode를 사용하면 속성 이름을 유지하면서 객체를 연관 배열로 변환할 수 있습니다.

사용자 정의 함수(재귀)

성능이 중요한 경우 사용자 정의 재귀 함수를 구현하여 객체를 다음으로 변환할 수 있습니다. 배열:

function object_to_array($object) {
  if (is_object($object)) {
    $object = get_object_vars($object);
  }

  if (is_array($object)) {
    return array_map(__FUNCTION__, $object);
  } else {
    return $object;
  }
}

$array = object_to_array($booking);

위 내용은 PHP stdClass 객체를 배열로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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