protected function sortByOrderNumber($nodes) { if (!$nodes) { return $nodes; } $nodes = \Eva\Stdlib\Arraylib\Sort::multiSortArray($nodes, 'level', 'SORT_ASC', 'SORT_NUMERIC', 'orderNumber', 'SORT_ASC', 'SORT_NUMERIC'); $levelNeedle = array(); $node = $nodes[0]; unset($nodes[0]); $res[] = $node; $levelNeedle[$node['level']] = $node; $count = count($nodes); $i = 1; while ($i <= $count) { list($node, $nodes, $levelNeedle) = $this->findNextNode($node, $nodes, $levelNeedle); $res[] = $node; if (count($nodes) < 1) { break; } $i++; } return $res; }
protected function getSystemProcessList($command) { $pslist = array(); exec($command, $pslist); $psCount = count($pslist); if ($psCount <= 0) { return array(); } $psData = array(); $column = array('USER', 'PID', 'CPU', 'MEM', 'VSZ', 'RSS', 'TTY', 'STAT', 'START', 'TIME', 'COMMAND'); for ($i = 0; $i < $psCount; $i++) { $item = array(); $process = $pslist[$i]; if ($i === 0 && 0 === strpos($process, 'USER')) { continue; } $token = ' '; for ($s = 0; $s < 10; $s++) { $tokenIndex = strpos($process, $token); $text = substr($process, 0, $tokenIndex); $process = ltrim(substr($process, $tokenIndex)); $item[$s] = $text; } $item[10] = rtrim(substr($process, $tokenIndex)); $psData[] = array_combine($column, $item); } $psData = \Eva\Stdlib\Arraylib\Sort::multiSortArray($psData, 'CPU', 'SORT_DESC'); return $psData; }