<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ~~~ /** * 將數組轉為tree樹形結構函數 * * @param $list * @param string $pk * @param string $pid * @param string $child * @param int $root * * @return array */ function listToTree($list, $pk = 'id', $pid = 'pid', $child = 'children', $root = 0) { $tree = array(); if(is_array($list)) { // 創建基于主鍵的數組引用 $refer = array(); foreach ($list as $key => $data) { $refer[$data[$pk]] =& $list[$key]; } foreach ($list as $key => $data) { // 判斷是否存在parent $parentId = $data[$pid]; if ($root == $parentId) { $tree[] =& $list[$key]; }else{ if(isset($refer[$parentId])) { $parent =& $refer[$parentId]; $parent[$child][] =& $list[$key]; } } } } return $tree; } ~~~ ~~~ /** * 數組層級縮進轉換 * @param array $array 源數組 * @param int $pid * @return array */ function array2level($array, $pid = 0, $level = 1) { static $list = []; foreach ($array as $v) { if ($v['pid'] == $pid) { $v['level'] = $level; $list[] = $v; self::array2level($array, $v['id'], $level + 1); } } return $list; } /** * 構建層級(樹狀)數組 * @param array $array 要進行處理的一維數組,經過該函數處理后,該數組自動轉為樹狀數組 * @param string $pid_name 父級ID的字段名 * @param string $child_key_name 子元素鍵名 * @return array|bool */ function array2tree(&$array, $pid_name = 'pid', $child_key_name = 'children') { $counter = self::array_children_count($array, $pid_name); if (!isset($counter[0]) || $counter[0] == 0) { return $array; } $tree = []; while (isset($counter[0]) && $counter[0] > 0) { $temp = array_shift($array); if (isset($counter[$temp['id']]) && $counter[$temp['id']] > 0) { array_push($array, $temp); } else { if ($temp[$pid_name] == 0) { $tree[] = $temp; } else { $array = self::array_child_append($array, $temp[$pid_name], $temp, $child_key_name); } } $counter = self::array_children_count($array, $pid_name); } return $tree; } /** * 把元素插入到對應的父元素$child_key_name字段 * @param $parent * @param $pid * @param $child * @param string $child_key_name 子元素鍵名 * @return mixed */ function array_child_append($parent, $pid, $child, $child_key_name) { foreach ($parent as &$item) { if ($item['id'] == $pid) { if (!isset($item[$child_key_name])) { $item[$child_key_name] = []; } $item[$child_key_name][] = $child; } } return $parent; } /** * 子元素計數器 * @param array $array * @param int $pid * @return array */ function array_children_count($array, $pid) { $counter = []; foreach ($array as $item) { $count = isset($counter[$item[$pid]]) ? $counter[$item[$pid]] : 0; $count++; $counter[$item[$pid]] = $count; } return $counter; } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看