> 백엔드 개발 > PHP 튜토리얼 > PHP에서 키-값 쌍 문자열을 연관 배열로 변환하려면 어떻게 해야 합니까?

PHP에서 키-값 쌍 문자열을 연관 배열로 변환하려면 어떻게 해야 합니까?

Patricia Arquette
풀어 주다: 2024-12-17 09:53:24
원래의
559명이 탐색했습니다.

How Can I Convert a String of Key-Value Pairs into an Associative Array in PHP?

키-값 쌍 문자열을 연관 배열로 변환

문제:
"key1value1key2value2key3value3"과 같은 형식의 문자열을 다음으로 변환하려고 합니다. "key1"이 "value1"에 매핑되고 "key2"가 "value2"에 매핑되는 연관 배열.

정규 표현식을 사용한 솔루션:

가장 빠르고 간단한 해결책은 정규식과 array_combine을 사용하는 것입니다.

preg_match_all("/([^\\]+)\\([^\\]+)/", $string, $p);
$array = array_combine($p[1], $p[2]);
로그인 후 복사

이 정규식 백슬래시로 구분된 인접한 키-값 쌍을 식별합니다. 그런 다음 캡처된 그룹은 array_combine을 사용하여 배열로 병합됩니다.

다른 구분 기호에 적용:

이 접근 방식은 다양한 키-값 및 쌍 구분 기호를 처리하도록 쉽게 조정할 수 있습니다. . 예를 들어:

# Key/value separated by colons, pair by commas
preg_match_all("/([^:]+):([^,]+)/", $string, $p);
$array = array_combine($p[1], $p[2]);
로그인 후 복사

다양한 구분 기호 허용:

단일 문자열 내에서 다양한 구분 기호를 허용하려면 보다 유연한 정규식을 사용할 수 있습니다.

preg_match_all("/([^:=]+)[:=]+([^,+&]+)/x", $string, $p);
로그인 후 복사

기타 접근 방식:

parse_str()(문자열 교체 포함):

입력 문자열이 이미 key=value&key2=value2 형식을 따르는 경우parse_str:

parse_str(strtr($string, ":,", "=&"), $pairs);
로그인 후 복사

수동 키/값 분리:

길이가 더 긴 경우가 많지만 분해 및 foreach를 사용하여 수동으로 배열을 생성할 수도 있습니다.

$pairs = array_combine(explode("\", $string, 2, TRUE), explode("\", $string, 2, TRUE));
로그인 후 복사

위 내용은 PHP에서 키-값 쌍 문자열을 연관 배열로 변환하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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