【问题标题】:Pull data From an Object based on shortcode (path) parameters根据简码(路径)参数从对象中提取数据
【发布时间】:2019-08-04 23:19:02
【问题描述】:

我正在为Wordpress 开发自定义函数。

我有大对象:

{
  "name": "Jon",
  "personal_information": {
            "Age": "18",
            "School": 'School_name',
            },
  "rewards": {
        "soccer": {
              "display": 'Hello soccer',
              "rate": 5,
              "type": 'soccer',
              },
          }
  } 

用户可以通过简码获取此信息:

[info name] // Will display "Jon"

[info rewards soccer display] // Will display "Hello soccer"

所以短代码实际上是一个数组:

info = Array ()
     [0] -> rewards
     [1] -> soccer
     [2] -> display

并从我正在做的对象中获取数据:

echo $object -> $info[0]->$info[1]->$info[2];

有没有办法通过循环做同样的事情?

所以我不会有类似$info[0]->$info[1]->$info[2];的东西

【问题讨论】:

    标签: php wordpress object


    【解决方案1】:

    您可以将while 循环用作:

    $info = json_decode('{"name": "Jon","personal_information": {"Age": "18","School": "School_name"},"rewards": {"soccer": {"display": "Hello soccer","rate": 5,"type": "soccer"}}}');
    
     $arr = explode(" ", "info rewards soccer display");
     array_shift($arr); // remove the name of the object - info
     $res = $info;
     while (count($arr)) {
         $key = array_shift($arr);
         $res = $res->$key;
     }
     echo $res; // prints Hello soccer
    

    【讨论】:

      猜你喜欢
      • 2018-12-14
      • 2021-10-24
      • 1970-01-01
      • 2014-03-26
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多