# give/4.16.9/src/Onboarding/Helpers/FormatList.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.9. 80 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.9/code/src/Onboarding/Helpers/FormatList.php
- Raw: https://pluginprobe.com/plugins/give/4.16.9/raw/src/Onboarding/Helpers/FormatList.php
- Modified: 2021-11-23T23:55:18+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/give/4.16.9/code/src/Onboarding/Helpers/FormatList.php#L10-L20`.

```php
<?php

namespace Give\Onboarding\Helpers;

/**
 * Formats an associative array into a JS parsable array of objects.
 *
 * @since 2.8.0
 */
class FormatList
{

    /**
     * Format a JS value/label object where the $key is the `value` and the $value is the `label`.
     *
     * @since 2.8.0
     *
     * @param array $data
     *
     * @return array
     *
     */
    public static function fromKeyValue($data)
    {
        return self::format(
            $data,
            function ($key, $value) {
                return [
                    'value' => $key,
                    'label' => $value,
                ];
            }
        );
    }

    /**
     * Format a JS value/label object where the $key is the `label` and the $value is the `value`.
     *
     * @since 2.8.0
     *
     * @param array $data
     *
     * @return array
     *
     */
    public static function fromValueKey($data)
    {
        return self::format(
            $data,
            function ($key, $value) {
                return [
                    'value' => $value,
                    'label' => $key,
                ];
            }
        );
    }

    /**
     * A higher-order function to format a JS value/label object.
     *
     * @since 2.8.0
     *
     * @param callable $function
     *
     * @param array    $data
     *
     * @return array
     *
     */
    protected static function format($data, $function)
    {
        return array_map(
            $function,
            array_keys($data),
            array_values($data)
        );
    }
}

```
