protected function methodTable($array, $columns = array())
    {
        if (!\is_array($array)) {
            return $this->dump($array);
        }
        $keys = $columns ?: $this->debug->methodTable->colKeys($array);
        $table = array();
        $classnames = array();
        if ($this->debug->abstracter->isAbstraction($array) && $array['traverseValues']) {
            $array = $array['traverseValues'];
        }
        foreach ($array as $k => $row) {
            $values = $this->debug->methodTable->keyValues($row, $keys, $objInfo);
            $values = $this->methodTableCleanValues($values);
            $table[$k] = $values;
            $classnames[$k] = $objInfo['row']
                ? $objInfo['row']['className']
                : '';
        }
        if (\array_filter($classnames)) {
            foreach ($classnames as $k => $classname) {
                $table[$k] = \array_merge(
                    array('___class_name' => $classname),
                    $table[$k]
                );
            }
        }
        return $table;
    }