PHP数组到JSON数组使用json_encode();

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP数组到JSON数组使用json_encode();相关的知识,希望对你有一定的参考价值。

我编写了一个使用内置的json_encode();函数制作的数组。我需要它的阵列数组格式,如下所示:

[["Afghanistan",32,12],["Albania",32,12]]

但是,它将返回:

["2":["Afghanistan",32,12],"4":["Albania",32,12]]

如何在不使用任何正则表达式技巧的情况下删除这些行号?

答案

如果php数组中的数组键不是连续数字,则json_encode()必须使另一个构造成为对象,因为javascript数组总是连续数字索引。

在PHP的外部结构上使用array_values()来丢弃原始数组键并将其替换为从零开始的连续编号:

Example:

// 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_encode函数而没有任何特定选项,它将返回一个数组。喜欢上面提到的问题

$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]]

既然你试图将Array转换为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"} 
?>
另一答案

我想补充一点,Michael Berkowski的答案是,如果数组的顺序颠倒了也会发生这种情况,在这种情况下,观察问题有点棘手,因为在json对象中,顺序将按升序排序。

例如:

[
    3 => 'a',
    2 => 'b',
    1 => 'c',
    0 => 'd'
]

将返回:

{
    0: 'd',
    1: 'c',
    2: 'b',
    3: 'a'
}

因此,在这种情况下的解决方案是在将其编码为json之前使用array_reverse

另一答案

JSON的一个常见用途是从Web服务器读取数据,并在网页中显示数据。

本章将教您如何在客户端和PHP服务器之间交换JSON数据。

PHP有一些内置函数来处理JSON。

可以使用PHP函数json_encode()将PHP中的对象转换为JSON:

<?php
$myObj->name = "John";
$myObj->age = 30;
$myObj->city = "New York";

$myJSON = json_encode($myObj);

echo $myJSON;
?>
另一答案

如果未在初始数组上指定索引,则会获得常规数字索引。数组必须具有某种形式的唯一索引

以上是关于PHP数组到JSON数组使用json_encode();的主要内容,如果未能解决你的问题,请参考以下文章

PHP数组到javascript循环与json_encode [关闭]

php使用json_encode把二维数组变为json格式,Javascrpt如何变回数组

PHP json_encode 变量如何转换成数组?

PHP json_encode转换空数组为对象

php解决json_encode输出GB2312中文问题 (数组)

PHP:对象数组 - 序列化与 json_encode - 替代方案?