在PHP中,如何将对象元素添加到数组中?

ada*_*ort 30 php arrays object

我正在使用PHP.我有一个对象数组,并希望在它的末尾添加一个对象.

$myArray[] = null; //adds an element
$myArray[count($myArray) - 1]->name = "my name"; //modifies the element I just added
Run Code Online (Sandbox Code Playgroud)

以上是功能性的,但是有更清晰,更易读的方式来编写吗?也许一行?

hal*_*fer 81

做就是了:

$object = new stdClass();
$object->name = "My name";
$myArray[] = $object;
Run Code Online (Sandbox Code Playgroud)

您需要先创建对象(new线),然后将其推到数组的末尾([]线).

你也可以这样做:

$myArray[] = (object) ['name' => 'My name'];
Run Code Online (Sandbox Code Playgroud)

但是,我认为即使它更简洁,也不是那么可读.

  • 我认为@nickb 是对的,您可以隐式地创建对象,但我不建议这样做,因为这样做可能会引发警告。 (2认同)

hin*_*e02 26

这是我发现的一个干净的方法:

$myArray = [];

array_push($myArray, (object)[
        'key1' => 'someValue',
        'key2' => 'someValue2',
        'key3' => 'someValue3',
]);

return $myArray;
Run Code Online (Sandbox Code Playgroud)


Fre*_*mer 7

你真的需要一个物体吗?关于什么:

$myArray[] = array("name" => "my name");
Run Code Online (Sandbox Code Playgroud)

只需使用二维数组.

输出(var_dump):

array(1) {
  [0]=>
  array(1) {
    ["name"]=>
    string(7) "my name"
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以像这样访问上一个条目:

echo $myArray[count($myArray) - 1]["name"];
Run Code Online (Sandbox Code Playgroud)