网上有很多开源的js版本的组织结构图工具,不过假设有这么个场景,有一个10多m的xml文件,里面是组织关系,要用php解析,再到js生成,这个两个过程都是很费时的,尤其是js的渲染过程,大部分的js版本都是再生成div的方式,这肯定会更加的慢了。 我的方法是,
网上有很多开源的js版本的组织结构图工具,不过假设有这么个场景,有一个10多m的xml文件,里面是组织关系,要用php解析,再到js生成,这个两个过程都是很费时的,尤其是js的渲染过程,大部分的js版本都是再生成div的方式,这肯定会更加的慢了。
<?php
function PHPtoOrgChart(array $arr,$title='') {
echo '<table>';
$size=count($arr);
if($title!='') {
//head
echo '<tr>';
echo '<td colspan="'.($size*2).'">';
echo '<div class="charttext">'.$title.'</div>';
echo '</td>';
echo '</tr>';
//head line
echo '<tr>';
echo '<td colspan="'.($size*2).'">';
echo '<table><tr><th class="right width-50"></th><th class="width-50"></th></tr></table>';
echo '</td>';
echo '</tr>';
//line
if($size>=2){
$tdWidth=((100)/($size*2));
echo '<tr>';
echo '<th class="right" width="'.$tdWidth.'%"></th>';
echo '<th class="top" width="'.$tdWidth.'%"></th>';
for($j=1; $j<$size-1; $j++) {
echo '<th class="right top" width="'.$tdWidth.'%"></th>';
echo '<th class=" top" width="'.$tdWidth.'%"></th>';
}
echo '<th class="right top" width="'.$tdWidth.'%"></th>';
echo '<th width="'.$tdWidth.'%"></th>';
echo '</tr>';
}
}
//
echo '<tr>';
foreach($arr as $key=>$value) {
echo '<td colspan="2">';
if(is_array($value)) {
PHPtoOrgChart($value,$key);
} else {
echo '<div class="charttext">'.$value.'</div>';
}
echo '</td>';
}
echo '</tr>';
//
echo '</table>';
}
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号