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

PHP / JSON-stdClass对象

阎淮晨
2023-03-14
问题内容

我对数组还很陌生。我需要一些帮助-我有一些JSON,并且已经通过一些PHP对其进行了运行,这些PHP基本上可以解析JSON并对其进行解码,如下所示:

stdClass Object
(
    [2010091907] => stdClass Object
        (
        [home] => stdClass Object
            (
                [score] => stdClass Object
                    (
                        [1] => 7
                        [2] => 17
                        [3] => 10
                        [4] => 7
                        [5] => 0
                        [T] => 41
                    )

                [abbr] => ATL
                [to] => 2
            )

实际上,这种情况一直持续发生-但是-我的问题是这一stdClass Object部分。我需要能够在for循环中调用此函数,然后遍历每个部分(主页,得分,缩写,到等)。我将如何处理?


问题答案:

您可以使用get_object_vars()来获取对象的属性的数组,或致电json_decode()json_decode($string,true);获得的关联数组。

例:

<?php
$foo = array('123456' =>
 array('bar' =>
        array('foo'=>1,'bar'=>2)));


//as object
var_dump($opt1 = json_decode(json_encode($foo)));

echo $opt1->{'123456'}->bar->foo;

foreach(get_object_vars($opt1->{'123456'}->bar) as $key => $value){
    echo $key.':'.$value.PHP_EOL;
}

//as array
var_dump($opt2 = json_decode(json_encode($foo),true));

echo $opt2['123456']['bar']['foo'];

foreach($opt2['123456']['bar'] as $key => $value){
    echo $key.':'.$value.PHP_EOL;
}
?>

输出:

object(stdClass)#1 (1) {
  ["123456"]=>
  object(stdClass)#2 (1) {
    ["bar"]=>
    object(stdClass)#3 (2) {
      ["foo"]=>
      int(1)
      ["bar"]=>
      int(2)
    }
  }
}
1
foo:1
bar:2

array(1) {
  [123456]=>
  array(1) {
    ["bar"]=>
    array(2) {
      ["foo"]=>
      int(1)
      ["bar"]=>
      int(2)
    }
  }
}
1
foo:1
bar:2


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

  • 问题内容: 我在将对象stdClass转换为数组时遇到问题。我已经尝试过这种方式: 要么 要么 强制转换之前的数组充满了一条记录,而我尝试强制转换之后的数组为空。如何在不删除行的情况下进行转换/转换? 转换前的数组: 如果我尝试使铸造后为空NULL 我也尝试过此功能,但始终为空: 问题答案: 所述 懒惰 单行方法 如果您愿意损失一点点性能,则可以使用JSON方法在一个内衬中执行此操作(尽管有些人报

  • 问题内容: 我有一个这样的对象: 我需要在HTML表中获取ID和名称,但是似乎很难遍历此对象。TIA。我知道我需要先到达“值数组”,然后再到达“组”对象,但是我要遍历对象和数组之间的过渡以及foreach与基于索引的迭代。 例如,我尝试了这个: 它遍历对象,但也给我没用 问题答案:

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

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

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