json_encode 함수는 PHP 배열을 인코딩할 수 있으며, 반환 값은 json 형식의 문자열입니다. 다차원 배열을 json_encoding하는 경우 항상 배열 형식({{obj1}, {obj2}, {obj3}} 형식)을 반환한다고 생각했는데 오늘 인터페이스가 반환되었습니다. 배열([{....},{.....},{.....}] 형식) 대신 클라이언트 작업에 불편함을 줍니다. . 코드를 확인한 결과 이전에 다차원 배열의 첫 번째 단위가 삭제되어 다른 반환 결과가 나온 것을 발견했습니다. 아래 코드를 참조하세요.
$arr = array( <span style="white-space:pre"> </span>0=>array('name'=>'张三','age'=>'120'), <span style="white-space:pre"> </span>1=>array('name'=>'李四','age'=>'111'), <span style="white-space:pre"> </span>2=>array('name'=>'王五','age'=>'233') ); $res = json_encode($arr); echo "<script>console.log('$res');</script>";
첫 번째 인덱스를 제거한 후 다시 살펴보기:
$arr = array( 0=>array('name'=>'张三','age'=>'120'), 1=>array('name'=>'李四','age'=>'111'), 2=>array('name'=>'王五','age'=>'233') ); unset($arr[0]); $res = json_encode($arr); echo "<script>console.log('$res');</script>";
해결 방법은 정렬 기능을 사용하여 다시 색인을 생성하는 것입니다.
$arr = array( 0=>array('name'=>'张三','age'=>'120'), 1=>array('name'=>'李四','age'=>'111'), 2=>array('name'=>'王五','age'=>'233') ); unset($arr[0]); sort($arr); $res = json_encode($arr); echo "<script>console.log('$res');</script>";
글쎄요... 블로그에 쓸 가치는 없을 것 같습니다. 스스로에게 상기시켜주세요
위 내용은 다차원 배열 json_encode 이후에 배열 대신 객체를 생성하는 문제를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.