> 백엔드 개발 > PHP 문제 > PHP 문자열을 객체 배열로 변환하는 방법

PHP 문자열을 객체 배열로 변환하는 방법

PHPz
풀어 주다: 2023-04-17 14:37:32
원래의
734명이 탐색했습니다.

웹사이트를 개발하는 과정에서 데이터 작업을 용이하게 하기 위해 문자열을 객체 배열로 변환해야 하는 경우가 종종 있습니다. PHP에서는 이 기능을 수행하는 방법이 많이 있으며 이 기사에서는 그 중 하나를 소개합니다.

1. json_decode 함수 사용

PHP는 JSON 형식 문자열을 객체나 배열로 변환할 수 있는 json_decode 함수를 제공합니다. 다음은 간단한 예입니다.

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$obj = json_decode($str);
print_r($obj);
?>
로그인 후 복사

출력은 다음과 같습니다.

stdClass Object
(
    [name] => Tom
    [age] => 18
)
로그인 후 복사

보시다시피 json_decode 함수는 JSON 문자열을 stdClass라는 개체로 변환합니다.

배열로 변환하려면 아래와 같이 두 번째 매개변수 true를 함수에 추가하면 됩니다.

<?php
$str = &#39;{"name": "Tom", "age": 18}&#39;;
$arr = json_decode($str, true);
print_r($arr);
?>
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => Tom
    [age] => 18
)
로그인 후 복사

보시다시피 json_decode 함수는 JSON 문자열을 변환합니다. 연관 배열로.

2. 문자열을 한 줄씩 분할하여 배열로 변환합니다

문자열이 JSON 형식이 아닌 경우 먼저 한 줄씩 분할한 후 한 줄씩 처리할 수 있습니다. 다음은 간단한 예입니다.

<?php
$str = "Tom,18\nJerry,22\n";
$arr = explode("\n", $str);
foreach($arr as $item) {
    $tmp = explode(",", $item);
    $result[] = array(
        "name" => $tmp[0], 
        "age" => $tmp[1]
    );
}
print_r($result);
?>
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 18
        )

    [1] => Array
        (
            [name] => Jerry
            [age] => 22
        )

)
로그인 후 복사

문자열을 한 줄로 나눈 후 한 줄씩 처리하여 여러 개체를 포함하는 배열로 변환하는 것을 볼 수 있습니다.

3. 정규식 사용

문자열 형식이 더 복잡하거나 문자열에 대해 더 복잡한 처리를 수행해야 하는 경우 정규식을 사용할 수 있습니다. 다음은 간단한 예입니다.

<?php
$str = "name=Tom&age=18&gender=male";
preg_match_all("/(\w+)=([^&]+)/", $str, $matches);
foreach($matches[1] as $key => $value) {
    $result[$value] = $matches[2][$key];
}
print_r($result);
?>
로그인 후 복사

출력 결과는 다음과 같습니다.

Array
(
    [name] => Tom
    [age] => 18
    [gender] => male
)
로그인 후 복사

보시다시피 쿼리 문자열은 정규식을 사용하여 연관 배열로 변환됩니다.

위는 문자열을 객체 배열로 변환하는 세 가지 방법입니다. 독자는 실제 상황에 따라 적절한 방법을 선택할 수 있습니다.

위 내용은 PHP 문자열을 객체 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿