>백엔드 개발 >PHP 튜토리얼 >json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?

json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?

WBOY
WBOY원래의
2016-12-01 00:56:433412검색

PHP 연관 배열을 정렬한 후 json_encode를 사용하여 프런트엔드로 출력됩니다. 왜 순서가 바뀌나요?
file_put_contents 함수를 사용하여 파일에 쓴 정렬된 배열입니다. 순서가 맞습니다.

json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?
echo json_encode()를 사용하여 프런트 데스크에 출력한 데이터이며, 순서가 변경되었습니다.

json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?

왜요? 도저히 이해가 안가는데 설명해주실 분 계신가요?

답글 내용:

PHP 연관 배열을 정렬한 후 json_encode를 사용하여 프런트엔드로 출력됩니다. 왜 순서가 바뀌나요?
file_put_contents 함수를 사용하여 파일에 쓴 정렬된 배열입니다. 순서가 맞습니다.

json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?
echo json_encode()를 사용하여 프런트 데스크에 출력한 데이터이며, 순서가 변경되었습니다.

json_encode를 사용하여 PHP 연관 배열을 정렬하고 프런트 엔드에 출력한 후 순서가 변경되는 이유는 무엇입니까?

왜요? 도저히 이해가 안가는데 설명해주실 분 계신가요?

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.