# ivyforms/1.5/backend/src/Common/Helpers/FormPageHelper.php

The Innovative Form Builder – IvyForms, version 1.5. 49 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/Common/Helpers/FormPageHelper.php
- Raw: https://pluginprobe.com/plugins/ivyforms/1.5/raw/backend/src/Common/Helpers/FormPageHelper.php
- Modified: 2026-06-22T13:19:22+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ivyforms/1.5/code/backend/src/Common/Helpers/FormPageHelper.php#L10-L20`.

```php
<?php

/**
 * @copyright © Melograno Venture Studio. All rights reserved.
 * @licence   See LICENCE.md for license details.
 */

namespace IvyForms\Common\Helpers;

class FormPageHelper
{
    /**
     * Group fields by page ID
     *
     * @param array<mixed> $fields
     * @return array<string, array<mixed>>
     */
    public static function groupFieldsByPageId(array $fields): array
    {
        $fieldsByPage = [];
        foreach ($fields as $field) {
            $pageId = $field['pageId'] ?? ($field['settings']['pageId'] ?? null);
            if ($pageId) {
                if (!isset($fieldsByPage[$pageId])) {
                    $fieldsByPage[$pageId] = [];
                }
                $fieldsByPage[$pageId][] = $field;
            }
        }
        return $fieldsByPage;
    }

    /**
     * Assign grouped fields to pages
     *
     * @param array<mixed> $pages
     * @param array<string, array<mixed>> $fieldsByPage
     * @return array<mixed>
     */
    public static function assignFieldsToPages(array $pages, array $fieldsByPage): array
    {
        foreach ($pages as &$page) {
            $pageId = $page['id'] ?? null;
            $page['fields'] = $fieldsByPage[$pageId] ?? [];
        }
        return $pages;
    }
}

```
