PHP 개발에서는 일반적으로 사람들이 읽기 쉽고 기계 구문 분석 및 생성에도 적합한 형식으로 개념을 표현하는 경량 데이터 교환 형식인 Json 형식(JavaScript Object Notation)을 사용합니다. 실제 개발을 하다 보면 여러 개의 Json 데이터를 PHP 배열로 변환해야 하는 상황이 발생할 수 있으므로 오늘은 이 기능을 구현하는 방법에 대해 알아보겠습니다.
1. 단일 Json을 배열로 변환
PHP에서는 json_decode() 함수를 사용하여 Json 형식 데이터를 PHP 배열로 변환합니다.
$json_str = '{"name":"John", "age":30, "city":"New York"}'; $arr = json_decode($json_str, true);
그중 두 번째 매개변수 true는 Json 데이터 변환을 의미합니다. 연관 배열에 두 번째 매개변수가 추가되지 않으면 객체가 생성됩니다.
2. 여러 Json 데이터를 배열로 변환
여러 Json 데이터를 PHP 배열로 변환해야 하는 경우 루프 탐색을 사용하여 Json 데이터를 하나씩 배열로 변환하고 이를 하나의 배열로 병합할 수 있습니다.
$json_arr = array( '{"name":"John", "age":30, "city":"New York"}', '{"name":"Jane", "age":25, "city":"Los Angeles"}', '{"name":"Tom", "age":40, "city":"Chicago"}' ); $data = array(); foreach($json_arr as $json_str) { $arr = json_decode($json_str, true); // 将Json数据转成数组 if(is_array($arr)) { // 如果转换成功,则将其合并到$data数组中 $data = array_merge($data, $arr); } } print_r($data);
위 코드에서는 먼저 여러 Json 데이터가 포함된 $json_arr 배열을 정의한 다음 루프 순회를 통해 각 Json 데이터를 배열로 변환하고 마지막으로 병합하여 모든 데이터 $data를 포함하는 배열을 생성합니다.
Json 데이터를 배열로 변환하지 못한 경우 데이터 오류를 방지하기 위해 $data 배열로 병합되지 않습니다.
3. array_map() 함수를 사용하여 데이터를 변환합니다
루프 순회 외에도 PHP의 array_map() 함수를 사용하여 여러 Json 데이터를 배열로 변환할 수도 있습니다.
$json_arr = array( '{"name":"John", "age":30, "city":"New York"}', '{"name":"Jane", "age":25, "city":"Los Angeles"}', '{"name":"Tom", "age":40, "city":"Chicago"}' ); // 将Json数据转换成数组 $callback = function($json_str) { $arr = json_decode($json_str, true); if(is_array($arr)) { return $arr; } }; $data = array_filter(array_map($callback, $json_arr)); // 过滤掉转换失败的数据 print_r($data);
위에서. 코드에서는 Json 데이터를 배열로 변환하는 데 사용되는 $callback 함수를 정의합니다. 그런 다음 이는 array_map() 함수에 매개변수로 전달되어 $json_arr 배열의 각 요소를 변환합니다. 마지막으로 array_filter() 함수를 사용하여 변환에 실패한 데이터를 필터링하고 모든 데이터가 포함된 $data 배열을 가져옵니다.
요약:
위의 두 가지 방법을 통해 여러 Json 데이터를 PHP 배열로 변환하는 기능을 구현할 수 있습니다. 실제 개발에서 많은 양의 Json 데이터를 처리해야 한다면 array_map() 함수를 사용하는 것이 더 빠르고 코드도 간단하기 때문에 권장합니다. 사용 중에는 데이터 오류를 방지하기 위해 데이터 확인에도 주의를 기울여야 합니다.
위 내용은 여러 json을 PHP의 배열로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!