Dibi\Result::oldFetchAssoc PHP Method

oldFetchAssoc() private method

Deprecation:
private oldFetchAssoc ( $assoc )
    private function oldFetchAssoc($assoc)
    {
        $this->seek(0);
        $row = $this->fetch();
        if (!$row) {
            return [];
            // empty result set
        }
        $data = NULL;
        $assoc = explode(',', $assoc);
        // strip leading = and @
        $leaf = '@';
        // gap
        $last = count($assoc) - 1;
        while ($assoc[$last] === '=' || $assoc[$last] === '@') {
            $leaf = $assoc[$last];
            unset($assoc[$last]);
            $last--;
            if ($last < 0) {
                $assoc[] = '#';
                break;
            }
        }
        do {
            $x =& $data;
            foreach ($assoc as $i => $as) {
                if ($as === '#') {
                    // indexed-array node
                    $x =& $x[];
                } elseif ($as === '=') {
                    // "record" node
                    if ($x === NULL) {
                        $x = $row->toArray();
                        $x =& $x[$assoc[$i + 1]];
                        $x = NULL;
                        // prepare child node
                    } else {
                        $x =& $x[$assoc[$i + 1]];
                    }
                } elseif ($as === '@') {
                    // "object" node
                    if ($x === NULL) {
                        $x = clone $row;
                        $x =& $x->{$assoc[$i + 1]};
                        $x = NULL;
                        // prepare child node
                    } else {
                        $x =& $x->{$assoc[$i + 1]};
                    }
                } else {
                    // associative-array node
                    $x =& $x[$row->{$as}];
                }
            }
            if ($x === NULL) {
                // build leaf
                if ($leaf === '=') {
                    $x = $row->toArray();
                } else {
                    $x = $row;
                }
            }
        } while ($row = $this->fetch());
        unset($x);
        return $data;
    }