首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP数据处理

PHP数据处理
EN

Stack Overflow用户
提问于 2014-09-11 11:24:31
回答 2查看 206关注 0票数 0

我一直在搜索并试图找到一种用php聪明地处理数据的方法。

示例:{"number":"test","first_name":"test","last_name":"test","company":"tes123321D323","call_result":"test","call_duration":"500","comment":"test"}

我有这个json字符串,我想从它中获取数据并将其回显到一个表中。json中的数据是由用户配置的。因此,假设用户只想显示公司调用的和。

我可以在每次以不同的方式处理数据时创建一个函数,但是我希望我的代码很短,而且很好,它应该适应它得到的字符串/参数类型。

我应该如何在json解码后显示这些数据?使用1函数多次显示对象的最佳方法是什么?

代码

$component_data是一个包含多个json字符串的mysql查询。

代码语言:javascript
复制
    if($component_data[0]->datatype !== "text"){
        foreach($component_data as $val){
            $isJira = ($val->datatype == "jirajson") ? true : false;

            $comp_objarr[] = json_decode(trim($val->data));
        }

        if($isJira){
            foreach($comp_objarr as $object){
                $comp_objarrnew[$object->_displayName][] = $object;
            }
        }else{
            $comp_objarrnew[] = $comp_objarr;
        }

        $uid = 0;
        if(isset($_GET['uid'])){
            $uid = $_GET['uid'];
        }

        $var = "";
        $i = 0;
        $i2 = 0;
        echo "<table>";
        foreach($comp_objarrnew as $key => $object){
            if($isJira){
                if($i == $uid){
                    usort($comp_objarr, 'cmp');
                    echo "<tr><th colspan=\"7\">$key</th></tr>";
                    echo "<tr>";
                    foreach($object as $value){
                        $var .= "<tr>";
                        foreach($value as $key => $item){
                            if($i2 == 0){
                                echo "<th>$key</th>";
                            }
                            $var .= "<td>".$item."</th>";
                        }
                        $i2++;
                        if($i2 > 0){
                            echo "</tr>";
                        }
                        $var .= "</tr>";
                    }
                }
                $i++;
            }else{
                foreach($object as $value){
                    if($i == 0){
                        $var .= "<tr>";
                        foreach($value as $key => $item){
                            $var .= "<th>".$key."</th>";
                        }
                        $var .= "</tr>";
                        $i++;
                    }

                    $var .= "<tr>";
                    foreach($value as $item){
                        $var .= "<td>".$item."</td>";
                    }
                    $var .= "</tr>";
                }
            }
        }
        echo $var;
        echo "</table>";
    }else{
        $i = 0;
        $var = "";

        echo "<table>";
        foreach($component_data as $val){
            if($i == 0){
                echo "<tr>";
            }

            $var .= "<tr>";
            foreach($val as $key => $info){
                if($i == 0){
                    echo "<th>$key</th>";
                }
                $var .= "<td>$info</td>";
            }
            $i++;
            $var .= "</tr>";
        }
        echo $var;
        echo "</table>";
    }
}

这是当前显示的方式

这是用户可以添加的显示之一:

比如每天对数据进行分组。

用户可以添加无限数量的显示。例如只显示公司名称、按计数显示公司名称等。

如果我想让代码轻松地显示其他内容,我应该如何编辑代码?而不需要创建大量的if语句。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-17 09:20:53

弄明白了。

我使用了一个数据库,并为每个json字符串定义了如何显示它的设置:

宽度、高度、长度、按组排序。

然后,在我的类中,我创建了一个函数来迭代设置并检查如何显示数据。

票数 0
EN

Stack Overflow用户

发布于 2014-09-11 11:29:57

如果您想从json编码的格式中获取数据,那么应该使用json_decode()函数。这个函数将解码所有的数据并返回array.After它可以使用这个数组anywhere.So使用这个函数

代码语言:javascript
复制
  Ex. $arr =array();
  $arr = json_decode($var); // decode the string variable and store it into the array
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25786184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档