json_encode()를 사용하여 PHP 어레이에서 JSON 어레이로.
내장 어레이를 사용하여 작성한 어레이를 인코딩했습니다.json_encode();
기능.다음과 같은 배열 형식으로 필요합니다.
[["Afghanistan",32,12],["Albania",32,12]]
단, 다음과 같이 반환됩니다.
{"2":["Afghanistan",32,12],"4":["Albania",32,12]}
Regex 속임수를 사용하지 않고 이러한 행 번호를 삭제하려면 어떻게 해야 합니다.
PHP 배열의 배열 키가 연속된 번호가 아닌 경우json_encode()
는 JavaScript 배열은 항상 연속적으로 수치적으로 색인화되므로 다른 구성을 개체로 만들어야 합니다.
PHP의 외부 구조에서 사용하여 원래 배열 키를 폐기하고 0 기반 연속 번호로 대체합니다.
예:
// Non-consecutive 3number keys are OK for PHP
// but not for a JavaScript array
$array = array(
2 => array("Afghanistan", 32, 13),
4 => array("Albania", 32, 12)
);
// array_values() removes the original keys and replaces
// with plain consecutive numbers
$out = array_values($array);
json_encode($out);
// [["Afghanistan", 32, 13], ["Albania", 32, 12]]
json_encode() 함수는 php에서 배열을 JSON으로 인코딩하는 데 도움이 됩니다.
특정 옵션 없이 json_displays 함수만 직접 사용하는 경우 어레이가 반환됩니다.위의 질문처럼
$array = array(
2 => array("Afghanistan",32,13),
4 => array("Albania",32,12)
);
$out = array_values($array);
json_encode($out);
// [["Afghanistan",32,13],["Albania",32,12]]
어레이를 JSON으로 변환하려고 하기 때문에 다음과 같이 json_encode의 추가 옵션(파라미터)으로 JSON_FORCE_OBJECT를 사용하는 것이 좋습니다.
<?php
$array=['apple','orange','banana','strawberry'];
echo json_encode($array, JSON_FORCE_OBJECT);
// {"0":"apple","1":"orange","2":"banana","3":"strawberry"}
?>
마이클 버코스키의 답변에 덧붙이고 싶습니다만, 어레이의 순서가 반대로 되어도, 이 경우는 json 오브젝트에서는 순서가 오름차순으로 되어 있기 때문에, 이 문제를 관찰하는 것이 조금 곤란합니다.
예를 들어 다음과 같습니다.
[
3 => 'a',
2 => 'b',
1 => 'c',
0 => 'd'
]
반환:
{
0: 'd',
1: 'c',
2: 'b',
3: 'a'
}
그래서 이 경우의 해결방법은array_reverse
json으로 인코딩하기 전에
PHP 어레이를 JSON으로 변환할 때 악센트 문자가 문제가 있었습니다.UTF-8을 여러 곳에 배치했지만 PHP에 이 코드를 추가할 때까지 아무 것도 문제를 해결하지 못했습니다.어레이를 푸쉬하고 있는 동안 루프에 이 코드를 PHP에 추가했습니다.
$es_words[] = array(utf8_encode("$word"),"$alpha","$audio");
문제는 '$word' 변수뿐이었습니다.그 후, jason_encode는 문제없이 실행되었습니다.
도움이 되었으면 좋겠다
언급URL : https://stackoverflow.com/questions/11722059/php-array-to-json-array-using-json-encode
'IT' 카테고리의 다른 글
다른 테이블에 존재하지 않음으로써 SQL의 특정 행 표시 (0) | 2022.10.30 |
---|---|
람다 함수 폐쇄는 무엇을 캡처합니까? (0) | 2022.10.30 |
JSONObject와 JSONArray의 차이점 (0) | 2022.10.30 |
추출하다Android에서 비활성 InputConnection 경고 텍스트 (0) | 2022.10.30 |
MySql.Data.MySql Client 。MySqlException: "호스트 로컬 호스트가 SSL 연결을 지원하지 않습니다." (0) | 2022.10.30 |