【问题标题】:how can I create an array of stdobj in php?如何在 php 中创建 stdobj 数组?
【发布时间】:2015-11-10 11:37:37
【问题描述】:

在 laravel 中,数据库上的 get() 方法返回一个 stdObjs 数组, 比如这个:

$designers = DB::table('designers')->get();

将以 stdObj 数组的形式返回设计师表中的所有设计师。

现在我想手动创建一个 stdObjs 数组,使用如下:

public function index()
    {

        $id = Auth::id();

        $user = User::find($id);

        foreach ($user->owned_item as $i) {          

                $result = new \stdClass(); 
                $result->type => $i->Item_type->type,
                $result->color => $i->Item_color->color


        }

很明显,代码会在每个周期覆盖 $result obj,问题是,我如何创建一个包含我需要的所有 stdobjs 的数组?

【问题讨论】:

  • 不懂基本 PHP 为什么要使用框架?
  • 我正在学习,如果您对此感到生气,我很抱歉。无论如何感谢您的帮助。
  • 无意冒犯,但我的意思是,如果您正在学习,请先学习基础知识。当您开始使用框架时,它会让您的生活更轻松。
  • 您可以从这里开始phptherightway.com 或这里daylerees.com/php-pandas

标签: php arrays laravel eloquent


【解决方案1】:

您需要在每个项目的循环执行结束之前将它们分配给一个数组。

$objs = [];

foreach (...) {
    $obj = new \stdClass();

    ...

    $objs[] = $obj;
}

循环之后,$objs 变量包含一个数组,其中包含在 foreach 循环中创建的对象。

编辑:如果你想为每个对象设置特定的数组键,你可以使用

$objs[$key_here] = $obj;

将对象插入数组时。 $key_here 应该是字符串或整数。

【讨论】:

  • 是的!有效!谢谢,我不知道该怎么做
猜你喜欢
  • 2018-04-22
  • 1970-01-01
  • 2013-12-09
  • 2014-03-23
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多