private function parse(array $data, NodePath $nodePath, $parentId = null)
    {
        $parentId = $this->validateParentId($parentId);
        $csvFile = $this->createCsvFile($this->structure->getTypeFromNodePath($nodePath), $nodePath, $parentId);
        $parentCols = array_fill_keys(array_keys($parentId), "string");

        foreach ($data as $row) {
            // in case of non-associative array of strings
            // prepare {"data": $value} objects for each row
            if (is_scalar($row) || is_null($row)) {
                $row = (object) [Structure::DATA_COLUMN => $row];
            } elseif ($this->analyzer->getNestedArrayAsJson() && is_array($row)) {
                $row = (object) [Structure::DATA_COLUMN => json_encode($row)];
            }

            // Add parentId to each row
            if (!empty($parentId)) {
                $row = (object) array_replace((array) $row, $parentId);
            }

            $csvRow = $this->parseRow($row, $nodePath, $parentCols);
            $csvFile->writeRow($csvRow->getRow());
        }
    }
private function parse(array $data, NodePath $nodePath, $parentId = null)
    {
        $parentId = $this->validateParentId($parentId);
        $csvFile = $this->createCsvFile($this->structure->getTypeFromNodePath($nodePath), $nodePath, $parentId);
        $parentCols = array_fill_keys(array_keys($parentId), "string");

        foreach ($data as $row) {
            // in case of non-associative array of strings
            // prepare {"data": $value} objects for each row
            if (is_scalar($row) || is_null($row)) {
                $row = (object) [Structure::DATA_COLUMN => $row];
            } elseif ($this->analyzer->getNestedArrayAsJson() && is_array($row)) {
                $row = (object) [Structure::DATA_COLUMN => json_encode($row)];
            }

            // Add parentId to each row
            if (!empty($parentId)) {
                $row = (object) array_replace((array) $row, $parentId);
            }

            $csvRow = $this->parseRow($row, $nodePath, $parentCols);
            $csvFile->writeRow($csvRow->getRow());
        }
    }
private function parse ( array $ data , NodePath $ nodePath , $ parentId = null ) { $ parentId = $ this -> validateParentId ( $ parentId ) ; $ csvFile = $ this -> createCsvFile ( $ this -> structure -> getTypeFromNodePath ( $ nodePath ) , $ nodePath , $ parentId ) ; $ parentCols = array_fill_keys ( array_keys ( $ parentId ) , "string" ) ; foreach ( $ data as $ row ) { // in case of non-associative array of strings // prepare {"data": $value} objects for each row if ( is_scalar ( $ row ) || is_null ( $ row ) ) { $ row = ( object ) [ Structure :: DATA_COLUMN => $ row ] ; } elseif ( $ this -> analyzer -> getNestedArrayAsJson ( ) && is_array ( $ row ) ) { $ row = ( object ) [ Structure :: DATA_COLUMN => json_encode ( $ row ) ] ; } // Add parentId to each row if ( ! empty ( $ parentId ) ) { $ row = ( object ) array_replace ( ( array ) $ row , $ parentId ) ; } $ csvRow = $ this -> parseRow ( $ row , $ nodePath , $ parentCols ) ; $ csvFile -> writeRow ( $ csvRow -> getRow ( ) ) ; } }
Parse data of known type

@param array $data
@param NodePath $nodePath
@param string|array $parentId
Parse data of known type