현재 위치: > 최신 기사 목록> 데이터를 직렬화 할 때 다차원 배열을 처리하는 방법은 무엇입니까?

데이터를 직렬화 할 때 다차원 배열을 처리하는 방법은 무엇입니까?

gitbox 2025-05-19

소개

PHP에서 Serialize () 함수는 데이터를 저장 또는 전송할 수있는 형식으로 변환하는 데 사용됩니다. Serialize () 함수는 다차원 배열 또는 객체와 같은 복잡한 데이터 구조에 매우 유용합니다. 파일 또는 데이터베이스의 손쉬운 저장소 또는 URL 또는 API를 통해 전송을 위해 배열 또는 객체를 문자열로 변환합니다.

이 기사에서는 Serialize () 함수를 사용하여 다차원 배열의 직렬화를 처리하고 직렬화 및 사형화하는 방법을 보여줍니다.

php의 serialize () 함수

Serialize ()는 PHP 값 (배열 및 객체 포함)을 저장 또는 전송할 수있는 문자열 표현으로 변환하기 위해 PHP의 내장 함수입니다. 문자열은 파일, 데이터베이스에 저장하거나 네트워크를 통해 전송 될 수 있습니다.

문법:

 string serialize ( mixed $value )
  • : 직렬화 할 값 (모든 유형의 PHP 변수 일 수 있음).

  • 반환 값 : 직렬화 된 값을 나타내는 문자열을 반환합니다.

예:

 $array = array("apple", "banana", "cherry");
$serialized = serialize($array);
echo $serialized;

다차원 배열의 직렬화를 처리합니다

다차원 배열을 처리 할 때 Serialize () 함수는 전체 배열을 모든 수준에서 데이터를 포함하는 문자열로 변환 할 수 있습니다. 이것은 복잡한 데이터 구조를 저장하는 데 매우 유용합니다.

예:

여러 차원의 배열이 있다고 가정합니다.

 $multiArray = array(
    "fruits" => array("apple", "banana", "cherry"),
    "vegetables" => array("carrot", "broccoli", "spinach"),
    "numbers" => array(1, 2, 3, 4)
);

$serializedMultiArray = serialize($multiArray);
echo $serializedMultiArray;

출력은 다음과 유사한 모든 배열 요소를 포함하는 긴 스트링입니다.

 a:3:{s:6:"fruits";a:3:{s:5:"apple";s:6:"banana";s:6:"cherry";}s:9:"vegetables";a:3:{s:7:"carrot";s:9:"broccoli";s:8:"spinach";}s:7:"numbers";a:4:{i:1;i:2;i:3;i:4;}}

이 문자열은 파일에 저장되거나 다른 응용 프로그램으로 전달 될 수 있으며 사형화 될 때 원래 다차원 배열 구조로 복원됩니다.

사제화

사제화는 직렬화 된 문자열을 PHP 변수로 복원하는 과정입니다. unsserialize () 함수를 사용하여 수행 할 수 있습니다.

문법:

 mixed unserialize ( string $data [, array $options = [] ] )
  • 데이터 : 실질화하는 문자열.

  • 옵션 : 디코딩을위한 옵션 (선택 사항).

예:

이미 직렬화 된 다차원 배열 문자열이 있다고 가정합니다.

 $serializedData = 'a:3:{s:6:"fruits";a:3:{s:5:"apple";s:6:"banana";s:6:"cherry";}s:9:"vegetables";a:3:{s:7:"carrot";s:9:"broccoli";s:8:"spinach";}s:7:"numbers";a:4:{i:1;i:2;i:3;i:4;}}';
$unserializedData = unserialize($serializedData);

print_r($unserializedData);

산출:

 Array
(
    [fruits] => Array
        (
            [0] => apple
            [1] => banana
            [2] => cherry
        )
    [vegetables] => Array
        (
            [0] => carrot
            [1] => broccoli
            [2] => spinach
        )
    [numbers] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => 4
        )
)

직렬화를 사용하여 URL을 처리합니다

사막화 후 원래 URL 구조로 직렬화되고 복원되어야하는 URL 배열이 있다고 가정합니다. 데모를 위해 gitbox.net을 샘플 도메인 이름으로 사용합니다.

예:

 $urlArray = array(
    "google" => "https://www.gitbox.net/search?q=php",
    "yahoo" => "https://www.gitbox.net/search?q=python",
    "bing" => "https://www.gitbox.net/search?q=javascript"
);

$serializedUrlArray = serialize($urlArray);
echo $serializedUrlArray;

출력 직렬화 된 문자열에는 대체 된 URL이 포함됩니다.

 a:3:{s:6:"google";s:40:"https://www.gitbox.net/search?q=php";s:5:"yahoo";s:40:"https://www.gitbox.net/search?q=python";s:4:"bing";s:42:"https://www.gitbox.net/search?q=javascript";}

사막화가 필요한 경우 URL은 원래 URL 양식으로 복원되며 여전히 gitbox.net을 포함합니다.

요약

  • PHP의 Serialize () 함수는 복잡한 배열 또는 객체를 저장 또는 전송할 수있는 문자열로 변환하는 데 사용됩니다.

  • 다차원 배열의 경우 Serialize () 함수는 모든 레벨에서 데이터를 처리하고 사용 가능한 문자열로 변환 할 수 있습니다.

  • unsserialize () 함수를 통해 직렬화 된 문자열은 PHP의 원래 데이터 구조로 복원 될 수 있습니다.

  • 직렬화 프로세스 중에 URL이 관련된 경우 gitbox.net 과 같은 지정된 도메인 이름으로 배열에서 직접 교체 할 수 있습니다.

이러한 기술을 사용하면 PHP의 복잡한 데이터 직렬화, 특히 다차원 배열의 저장 및 전송을 쉽게 처리 할 수 ​​있습니다.