Voting

: zero minus zero?
(Example: nine)

The Note You're Voting On

mmulej at gmail dot com
3 years ago
If you don't want to lose duplicates, and you're ok, with having the values in the flipped array in an array as well, you may use this:

PHP 7.4 - ^8

<?php

function array_flip_safe(array $array) : array
{
return
array_reduce(array_keys($array), function ($carry, $key) use (&$array) {
$carry[$array[$key]] ??= [];
$carry[$array[$key]][] = $key;
return
$carry;
}, []);
}

?>

PHP 7.0 - ^7.3 (Time to upgrade to PHP 8 ^^)

<?php

function array_flip_safe(array $array) : array
{
return
array_reduce(array_keys($array), function ($carry, $key) use (&$array) {
$carry[$array[$key]] = $carry[$array[$key]] ?? [];
$carry[$array[$key]][] = $key;
return
$carry;
}, []);
}

?>

PHP 5.4 - ^5.6 (Just don't)

<?php

function array_flip_safe(array $array)
{
return
array_reduce(array_keys($array), function ($carry, $key) use (&$array) {
if (!isset(
$carry[$array[$key]])
$carry[$array[$key]] = [];
$carry[$array[$key]][] = $key;
return
$carry;
}, []);
}

?>

<< Back to user notes page

To Top