我一直在搜索并试图找到一种用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查询。
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语句。
发布于 2014-09-17 09:20:53
弄明白了。
我使用了一个数据库,并为每个json字符串定义了如何显示它的设置:
宽度、高度、长度、按组排序。
然后,在我的类中,我创建了一个函数来迭代设置并检查如何显示数据。
发布于 2014-09-11 11:29:57
如果您想从json编码的格式中获取数据,那么应该使用json_decode()函数。这个函数将解码所有的数据并返回array.After它可以使用这个数组anywhere.So使用这个函数
Ex. $arr =array();
$arr = json_decode($var); // decode the string variable and store it into the arrayhttps://stackoverflow.com/questions/25786184
复制相似问题