我一直在寻找并试图找到一种使用 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 语句。