Php 如果在另一个数组中没有键,如何定义一个数组?
这个标题听起来有点混乱,尽管我相信有一个简单的解决方案。我正在使用json_编码,正在开发一个web API。web API将回显json_编码的数组。我希望它看起来像这样:Php 如果在另一个数组中没有键,如何定义一个数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,这个标题听起来有点混乱,尽管我相信有一个简单的解决方案。我正在使用json_编码,正在开发一个web API。web API将回显json_编码的数组。我希望它看起来像这样: { { "id": "test", "reason": "test reason" }, { { "id": "test2", "reason": "test reason2" } } 我试过这个: $arra
{
{
"id": "test",
"reason": "test reason"
},
{
{
"id": "test2",
"reason": "test reason2"
}
}
我试过这个:
$array = array();
$array[""] = array();
$array[""]["id"] = "test";
$array[""]["reason"] = "test reason";
$array[""] = array();
$array[""]["id"] = "test";
$array[""]["reason"] = "test reason";
这仍然有一个键(“”),这很烦人。我不要钥匙。我怎样才能解决这个问题?谢谢!:)
这样做是有充分理由的:在javascript中,花括号表示对象。在对象中,每个属性都必须有一个键。另一端的括号表示数值索引的数组
php中的数组类型可能会令人困惑,因为它是一个多功能数组,您可以根据需要混合和匹配键
因此,这是有效的JSON,可能是您真正需要的(如果您不关心键,则需要在值上循环):
编辑 您可以通过
json\u encode()
在php中创建这样的数组,如下所示:
$array = [["id"=> "test","reason"=> "test reason"],["id"=> "test","reason"=> "test reason"]];
echo json_encode($array);
我认为这更符合你的原始代码,你几乎把它钉死了
<?php
$array = array();
// create 1st detail entry
$arrayDetail = array();
$arrayDetail["id"] = "test";
$arrayDetail["reason"] = "test reason";
$array[] = $arrayDetail; // add detail to array
// create 2nd detail entry
$arrayDetail = array();
$arrayDetail["id"] = "test";
$arrayDetail["reason"] = "test reason";
$array[] = $arrayDetail; // add detail to array
// show the output
var_dump(json_encode($array, JSON_PRETTY_PRINT));
您可以使用array\u push
方法获得如下格式
$array = array();
array_push($array, array('id' => 'test', 'reason' => 'test reason' ) );
echo json_encode($array);
Result将是一种有效的json格式,如下所示
[{"id":"test","reason":"test reason"}]
您可以使用array(array(“id”=>“test”,“reason”=>“test reason”),array(“id”=>“test2”,“reason”=>“test reason2”)
并在JSON\u encode
期间使用JSON\u FORCE\u OBJECT
强制其他外部部分成为对象,而不是数组([…]
)('id'=>'test','reason'=>'test reason'))
json\u encode($array)或array(array('your data'))
。看看它是否对你有帮助!@ccKep也许,尽管当我想用代码在数组中定义数组时会出现问题。我不想用数组中的所有内容来定义数组。@elumalai\u kp是的,你的方法工作得很好。PHP数组将被编码为JSON数组([],没有键),如果所有键都是数字且从0开始,并且键不跳过任何数字(小心删除),并且内部数组顺序与键的顺序匹配(排序时小心)。注释/答案中的许多建议都创建了这样一个数组。那么,我如何使用它?创建一个数组(如您发布的数组)的代码是什么?
$array = array();
array_push($array, array('id' => 'test', 'reason' => 'test reason' ) );
echo json_encode($array);
[{"id":"test","reason":"test reason"}]