我一直在寻找并尝试使用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 [0]是一个带有多个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语句。
答案 0 :(得分:0)
想出来。
我使用了数据库,并为每个json字符串定义了如何显示它的设置:
宽度高度长度按分组排序。
然后在我的班级中我创建了一个函数来迭代设置并检查如何显示数据。
答案 1 :(得分:-1)
如果要从json编码格式获取数据,则应使用json_decode()函数。这个函数将解码所有数据并返回数组。之后你可以在任何地方使用这个数组。所以使用这个函数
Ex. $arr =array();
$arr = json_decode($var); // decode the string variable and store it into the array