# mail-boxes-etc/trunk/backward_compatibility/array_column.php

MBE eShip, version trunk. 27 lines.

- Page: https://pluginprobe.com/plugins/mail-boxes-etc/trunk/code/backward_compatibility/array_column.php
- Raw: https://pluginprobe.com/plugins/mail-boxes-etc/trunk/raw/backward_compatibility/array_column.php
- Modified: 2024-08-06T10:16:26+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/mail-boxes-etc/trunk/code/backward_compatibility/array_column.php#L10-L20`.

```php
<?php
if (! function_exists('array_column')) {
    function array_column_bc(array $input, $columnKey, $indexKey = null) {
        $array = array();
        foreach ($input as $value) {
            if ( !array_key_exists($columnKey, $value)) {
//                trigger_error("Key \"$columnKey\" does not exist in array");
                return false;
            }
            if (is_null($indexKey)) {
                $array[] = $value[$columnKey];
            }
            else {
                if ( !array_key_exists($indexKey, $value)) {
//                    trigger_error("Key \"$indexKey\" does not exist in array");
                    return false;
                }
                if ( ! is_scalar($value[$indexKey])) {
//                    trigger_error("Key \"$indexKey\" does not contain scalar value");
                    return false;
                }
                $array[$value[$indexKey]] = $value[$columnKey];
            }
        }
        return $array;
    }
}
```
