PHP 연관 배열을 정렬한 후 json_encode를 사용하여 프런트엔드로 출력됩니다. 왜 순서가 바뀌나요?
file_put_contents 함수를 사용하여 파일에 쓴 정렬된 배열입니다. 순서가 맞습니다.
echo json_encode()를 사용하여 프런트 데스크에 출력한 데이터이며, 순서가 변경되었습니다.
왜요? 도저히 이해가 안가는데 설명해주실 분 계신가요?
PHP 연관 배열을 정렬한 후 json_encode를 사용하여 프런트엔드로 출력됩니다. 왜 순서가 바뀌나요?
file_put_contents 함수를 사용하여 파일에 쓴 정렬된 배열입니다. 순서가 맞습니다.
echo json_encode()를 사용하여 프런트 데스크에 출력한 데이터이며, 순서가 변경되었습니다.
왜요? 도저히 이해가 안가는데 설명해주실 분 계신가요?
PHP의 배열은 순서가 지정되어 있지만 JSON 표준의 JavaScript 또는 개체는 순서를 보장하지 않습니다. JSON 라이브러리에 의한 키 변경은 특정 구현(보존/정렬)에서 키 순서를 처리하는 동작입니다. / 고장)에 의존해서는 안 됩니다
순서를 보장하려면 데이터 구조를 수정하고 "객체 배열"을 사용하여 구현하는 것이 좋습니다
<code>{ cnt: [ {id: "12", value:"1"}, {id: "03", value:"1"}, ...</code>
json
은 순서가 없습니다
이전에 비슷한 문제가 발생했습니다. json_encode의 값을 문자열 형식으로 출력할 수 있습니다.
Chrome에서는 이런 일이 발생합니다
백그라운드에서 key => value
구조를 출력해도 json_encode
순서는 정상입니다
그러나 Chrome에서는 "문자열 KEY" 및 "숫자 KEY"도 모두 양수 순서로 정렬합니다.
그래서 최종 해결책은
array_value