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
,它必须有意义,它必须是一个只有在您想要良好的编码实践时才有意义的对象……因此,它应该使用映射器模式,或者只是将数组发送给定义对象的构造函数,让它执行您希望它执行的操作。。。您甚至可以使用集合。只有代码的答案很少有用。考虑一两句话来解释你的方法。