private function arrayValue($value) : Expr\Array_
    {
        $items = [];
        $lastKey = -1;
        foreach ($value as $itemKey => $itemValue) {
            // for consecutive, numeric keys don't generate keys
            if (null !== $lastKey && ++$lastKey === $itemKey) {
                $items[] = new Expr\ArrayItem(
                    $this->__invoke($itemValue)
                );
            } else {
                $lastKey = null;
                $items[] = new Expr\ArrayItem(
                    $this->__invoke($itemValue),
                    $this->__invoke($itemKey)
                );
            }
        }

        return new Expr\Array_($items);
    }
private function arrayValue($value) : Expr\Array_
    {
        $items = [];
        $lastKey = -1;
        foreach ($value as $itemKey => $itemValue) {
            // for consecutive, numeric keys don't generate keys
            if (null !== $lastKey && ++$lastKey === $itemKey) {
                $items[] = new Expr\ArrayItem(
                    $this->__invoke($itemValue)
                );
            } else {
                $lastKey = null;
                $items[] = new Expr\ArrayItem(
                    $this->__invoke($itemValue),
                    $this->__invoke($itemKey)
                );
            }
        }

        return new Expr\Array_($items);
    }
private function arrayValue ( $ value ) : Expr \ Array_ { $ items = [ ] ; $ lastKey = - 1 ; foreach ( $ value as $ itemKey => $ itemValue ) { // for consecutive, numeric keys don't generate keys if ( null !== $ lastKey && ++ $ lastKey === $ itemKey ) { $ items [ ] = new Expr \ ArrayItem ( $ this -> __invoke ( $ itemValue ) ) ; } else { $ lastKey = null ; $ items [ ] = new Expr \ ArrayItem ( $ this -> __invoke ( $ itemValue ) , $ this -> __invoke ( $ itemKey ) ) ; } } return new Expr \ Array_ ( $ items ) ; }
Return array value node

@param mixed $value
Return array value node