Exemple #1
0
 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;
 }