Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.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 如何将字符串数组转换为对象,并将其键命名为laravel 8中的值?_Php_Laravel_Laravel 8 - Fatal编程技术网

Php 如何将字符串数组转换为对象,并将其键命名为laravel 8中的值?

Php 如何将字符串数组转换为对象,并将其键命名为laravel 8中的值?,php,laravel,laravel-8,Php,Laravel,Laravel 8,我有以下数组: $fields = ['field1', 'field2', 'field3']; 我想使用现有的帮助器('hoppy')将这些数组字符串值转换为具有空值的对象键值对 这是所需的输出: $fields = (object) [ 'field1' => '', 'field2' => '', 'field3' => '', ]; 是否可以使用Laravel助手来实现这一点,这样我就不必使用自己的函数了?您可以尝试以下代码来创建

我有以下数组:

$fields = ['field1', 'field2', 'field3'];
我想使用现有的帮助器('hoppy')将这些数组字符串值转换为具有空值的对象键值对

这是所需的输出:

  $fields = (object) [
    'field1' => '',
    'field2' => '',
    'field3' => '',

  ];

是否可以使用Laravel助手来实现这一点,这样我就不必使用自己的函数了?

您可以尝试以下代码来创建通用对象

$obj = new \stdClass();

foreach ($fields as $field) {
    $obj->$field = '';
}
这样做的原因是它将迭代每个字段,使用数组的值在对象上添加集合属性

请注意
->$
符号。这是因为PHP将$解析为变量的值,然后将其设置为箭头后面的属性


如果要使用关联数组,则可以更进一步

$fields = ['field1' => 'value1', 'field2' => 'value2', 'field3' => 'value3'];

foreach ($fields as $field => $value) {
    $obj->$field = $value;
}

这回答了你的问题吗?除了上面的重复,只需执行
$fields=(object)(数组填充键($fields')我不建议你做你想做的事。如果您使用的是Laravel,则会更加强调。。。如果您使用OOP,您应该知道一切都是一个“实体”,在野外没有“标准对象”,没有更多的
stdClass
,它必须有意义,它必须是一个只有在您想要良好的编码实践时才有意义的对象……因此,它应该使用映射器模式,或者只是将数组发送给定义对象的构造函数,让它执行您希望它执行的操作。。。您甚至可以使用集合。只有代码的答案很少有用。考虑一两句话来解释你的方法。