Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果在另一个数组中没有键,如何定义一个数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 如果在另一个数组中没有键,如何定义一个数组?

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

这个标题听起来有点混乱,尽管我相信有一个简单的解决方案。我正在使用json_编码,正在开发一个web API。web API将回显json_编码的数组。我希望它看起来像这样:

{
    {
        "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"}]