当前位置: 首页 > 面试题库 >

PHP的stdClass数组

叶华皓
2023-03-14
问题内容

我在将对象stdClass转换为数组时遇到问题。我已经尝试过这种方式:

return (array) $booking;

要么

return (array) json_decode($booking,true);

要么

return (array) json_decode($booking);

强制转换之前的数组充满了一条记录,而我尝试强制转换之后的数组为空。如何在不删除行的情况下进行转换/转换?

转换前的数组:

array(1) {   [0]=>   object(stdClass)#23 (36) {     ["id"]=>     string(1) "2"     ["name"]=>     string(0) ""     ["code"]=>     string(5) "56/13"   } }

如果我尝试使铸造后为空NULL var_dump($booking);

我也尝试过此功能,但始终为空:

public function objectToArray($d) {
        if (is_object($d)) {
            // Gets the properties of the given object
            // with get_object_vars function
            $d = get_object_vars($d);
        }

        if (is_array($d)) {
            /*
            * Return array converted to object
            * Using __FUNCTION__ (Magic constant)
            * for recursive call
            */
            return array_map(__FUNCTION__, $d);
        }
        else {
            // Return array
            return $d;
        }
    }

问题答案:

所述 懒惰 单行方法

如果您愿意损失一点点性能,则可以使用JSON方法在一个内衬中执行此操作(尽管有些人报告说它比递归遍历对象的速度更快-最有可能是因为PHP在调用函数时很慢)。“ 但是我已经做到了
。”你说。不完全是-您json_decode在阵列上使用过,但需要先对其进行编码json_encode

要求

json_encodejson_decode方法。这些自动捆绑在PHP5.2.0及更高版本中。如果您使用任何旧版本,则还有一个PECL库(也就是说,在这种情况下,您应该
真正 更新PHP安装。对5.1的支持已在2006年停止。)

转换一个array/ stdClass- >stdClass

$stdClass = json_decode(json_encode($booking));

转换一个array/ stdClass- >array

手册将第二个参数指定json_decode为:

assoc
TRUE,返回的对象将转换为关联数组。

因此,以下行将把整个对象转换为数组:

$array = json_decode(json_encode($booking), true);


 类似资料:
  • 问题内容: 我对数组还很陌生。我需要一些帮助-我有一些JSON,并且已经通过一些PHP对其进行了运行,这些PHP基本上可以解析JSON并对其进行解码,如下所示: 实际上,这种情况一直持续发生-但是-我的问题是这一部分。我需要能够在for循环中调用此函数,然后遍历每个部分(主页,得分,缩写,到等)。我将如何处理? 问题答案: 您可以使用来获取对象的属性的数组,或致电与获得的关联数组。 例: 输出:

  • 问题内容: 请定义什么。 问题答案: 是PHP的通用空类,有点像Java或Python( 编辑: 但实际上并未用作通用基类;感谢 @Ciaran 指出这一点)。 对于匿名对象,动态属性等很有用。 考虑StdClass的一种简单方法是替代关联数组。请参见下面的示例,该示例显示如何允许获取StdClass实例或关联数组。同样(但未在此示例中显示)返回StdClass实例。

  • 问题内容: 我从postmeta获取post_id为: 当我尝试 我有这样的数组: 而且我不知道如何遍历它,如何获得这样的数组 知道我该怎么做吗? 问题答案: 最简单的方法是对对象进行JSON编码,然后将其解码回数组: 或者,如果您愿意,也可以手动遍历对象:

  • 本文向大家介绍php中stdClass的用法分析,包括了php中stdClass的用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php中stdClass的用法。分享给大家供大家参考。具体分析如下: stdclass在php中是预定义的几个类之一,是zent保留的一个类。实际上它是PHP提供的一个基类,就是一个空白的类,里面什么都没有,我们可以实例化它,然后定义一系列的变量,通过它

  • 问题内容: 我有一个从json_decode创建的stdClass对象,当我运行count($ obj)函数时不会返回正确的数字。该对象具有30个属性,但count()函数的返回值为1。 有任何想法吗? 以下是其中一个对象的示例。(我正在从Twitter请求每日趋势信息)。如果此对象具有多个属性,则count($ obj)等于1。 问题答案: 问题在于count的目的是对数组中的索引进行计数,而不

  • 本文向大家介绍PHP中STDCLASS用法实例分析,包括了PHP中STDCLASS用法实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP中STDCLASS用法。分享给大家供大家参考,具体如下: PHP中STDCLASS在我们开发应用中使用到的不多,但是PHP中STDCLASS作用是非常的大的,下面我们一起来看PHP中STDCLASS的用法. 在WordPress中很多地方使用s