protected function reorderTables($tables, $relations)
    {
        $depencies = $orders = $result = [];
        foreach ($relations as $table => $relation) {
            if (isset($relation[$table])) {
                unset($relation[$table]);
            }
            $depencies[$table] = array_keys($relation);
        }
        $tableNames = array_keys($tables);
        sort($tableNames);
        $this->reorderRecrusive($tableNames, $depencies, $orders);
        foreach (array_keys($orders) as $value) {
            if (isset($tables[$value])) {
                $result[] = $tables[$value];
            }
        }
        return $result;
    }
protected function reorderTables($tables, $relations)
    {
        $depencies = $orders = $result = [];
        foreach ($relations as $table => $relation) {
            if (isset($relation[$table])) {
                unset($relation[$table]);
            }
            $depencies[$table] = array_keys($relation);
        }
        $tableNames = array_keys($tables);
        sort($tableNames);
        $this->reorderRecrusive($tableNames, $depencies, $orders);
        foreach (array_keys($orders) as $value) {
            if (isset($tables[$value])) {
                $result[] = $tables[$value];
            }
        }
        return $result;
    }
protected function reorderTables ( $ tables , $ relations ) { $ depencies = $ orders = $ result = [ ] ; foreach ( $ relations as $ table => $ relation ) { if ( isset ( $ relation [ $ table ] ) ) { unset ( $ relation [ $ table ] ) ; } $ depencies [ $ table ] = array_keys ( $ relation ) ; } $ tableNames = array_keys ( $ tables ) ; sort ( $ tableNames ) ; $ this -> reorderRecrusive ( $ tableNames , $ depencies , $ orders ) ; foreach ( array_keys ( $ orders ) as $ value ) { if ( isset ( $ tables [ $ value ] ) ) { $ result [ ] = $ tables [ $ value ] ; } } return $ result ; }
Reorder tables acourding with dependencies.
@param array $tables
@param array $relations
@return array
Reorder tables acourding with dependencies .