키-값 쌍 문자열을 연관 배열로 변환
문제:
"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 중국어 웹사이트의 기타 관련 기사를 참조하세요!