Shuffle array elements by rearranging the key value associations
PHP's shuffle()
function destroys the array keys, so I decided to write a shuffle function that doesn't do that and instead rearranges key-value associations. As I would be using the function in place of shuffle()
most of the time, I'd like it to be as fast and memory efficient (if a time-space tradeoff is needed, I think I would prioritise time) as possible:
<?
function swap(&$a, &$b)
{
$tmp = $a;
$a = $b;
$b = $tmp;
}
function shuffleX(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
$length = count($keys);
$i = 0; #Index.
while ($i < $length-1)
{
$target = rand(($i+1), $length-1); #This ensures that no value ends up mapped to the same key.
swap($arr[$keys[$i]], $arr[$keys[$target]]); #Swap each element of the array with another.
$i++;
}
}
?>
performance beginner php array shuffle
add a comment |
PHP's shuffle()
function destroys the array keys, so I decided to write a shuffle function that doesn't do that and instead rearranges key-value associations. As I would be using the function in place of shuffle()
most of the time, I'd like it to be as fast and memory efficient (if a time-space tradeoff is needed, I think I would prioritise time) as possible:
<?
function swap(&$a, &$b)
{
$tmp = $a;
$a = $b;
$b = $tmp;
}
function shuffleX(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
$length = count($keys);
$i = 0; #Index.
while ($i < $length-1)
{
$target = rand(($i+1), $length-1); #This ensures that no value ends up mapped to the same key.
swap($arr[$keys[$i]], $arr[$keys[$target]]); #Swap each element of the array with another.
$i++;
}
}
?>
performance beginner php array shuffle
add a comment |
PHP's shuffle()
function destroys the array keys, so I decided to write a shuffle function that doesn't do that and instead rearranges key-value associations. As I would be using the function in place of shuffle()
most of the time, I'd like it to be as fast and memory efficient (if a time-space tradeoff is needed, I think I would prioritise time) as possible:
<?
function swap(&$a, &$b)
{
$tmp = $a;
$a = $b;
$b = $tmp;
}
function shuffleX(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
$length = count($keys);
$i = 0; #Index.
while ($i < $length-1)
{
$target = rand(($i+1), $length-1); #This ensures that no value ends up mapped to the same key.
swap($arr[$keys[$i]], $arr[$keys[$target]]); #Swap each element of the array with another.
$i++;
}
}
?>
performance beginner php array shuffle
PHP's shuffle()
function destroys the array keys, so I decided to write a shuffle function that doesn't do that and instead rearranges key-value associations. As I would be using the function in place of shuffle()
most of the time, I'd like it to be as fast and memory efficient (if a time-space tradeoff is needed, I think I would prioritise time) as possible:
<?
function swap(&$a, &$b)
{
$tmp = $a;
$a = $b;
$b = $tmp;
}
function shuffleX(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
$length = count($keys);
$i = 0; #Index.
while ($i < $length-1)
{
$target = rand(($i+1), $length-1); #This ensures that no value ends up mapped to the same key.
swap($arr[$keys[$i]], $arr[$keys[$target]]); #Swap each element of the array with another.
$i++;
}
}
?>
performance beginner php array shuffle
performance beginner php array shuffle
edited 22 mins ago
Jamal♦
30.3k11116226
30.3k11116226
asked yesterday
Tobi Alafin
1977
1977
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
Rather than making iterated rand()
calls, you should randomize the data once for best efficiency. To do this, just isolate the keys, shuffle them, then rejoin the values to the appropriate keys in the new order.
Code: (Demo)
function preserve_shuffle(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
for ($index = 0, $length = count($keys); $index < $length; ++$index) {
$result[$keys[$index]] = $arr[$keys[$index]];
}
$arr = $result;
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
preserve_shuffle($arr);
var_export($arr);
Or, if you prefer greater brevity or a functional syntax, you could use the following inside your custom function:
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
$arr = array_merge(array_flip($keys), $arr);
Proof that it also works: https://3v4l.org/eLMo6
My earlier snippets only reorder the associative data. The following will shuffle the associations without shuffling the key orders. It does not guarantee that all initially associations will be destroyed -- which I feel is beneficial / less predictable in a randomized result.
function random_disassociate(&$assoc_array)
{
if (sizeof($assoc_array) < 2) {
return; // data cannot be disassociated
}
$keys = array_keys($assoc_array);
shuffle($assoc_array);
$assoc_array = array_combine($keys, $assoc_array);
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
random_disassociate($arr);
var_export($arr);
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
add a comment |
The swap()
function is unecessary
There's no need to create a swap()
function. This can be done as a one-liner using native PHP. And, generally speaking, native functionality is going to be more performant than user-defined functions. It also means less code for you to write or maintain.
list($a,$b) = [$b, $a];
This takes two values, places them in an array and then using list()
swaps them. In your case it would look like:
list($arr[$keys[$i]],$arr[$keys[$target]]) = [$arr[$keys[$target]], $arr[$keys[$i]]];
Friendly reminder: don't use short tags
Short PHP tags (<?
) has been discouraged for a long time. Although it is still supported it is disabled by default in the php.ini file and its use is discouraged. It sounds like it is not a big deal but this means having to make sure every time you set up an environment for this to run you have to make a special configuration change which is risky and time consuming and really shouldn't be necessary. (The short echo tag (<?=
) is not discouraged and always available so feel free to use that as much as you like).
PHP also allows for short open tag
<?
(which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).
Source
New contributor
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210790%2fshuffle-array-elements-by-rearranging-the-key-value-associations%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Rather than making iterated rand()
calls, you should randomize the data once for best efficiency. To do this, just isolate the keys, shuffle them, then rejoin the values to the appropriate keys in the new order.
Code: (Demo)
function preserve_shuffle(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
for ($index = 0, $length = count($keys); $index < $length; ++$index) {
$result[$keys[$index]] = $arr[$keys[$index]];
}
$arr = $result;
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
preserve_shuffle($arr);
var_export($arr);
Or, if you prefer greater brevity or a functional syntax, you could use the following inside your custom function:
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
$arr = array_merge(array_flip($keys), $arr);
Proof that it also works: https://3v4l.org/eLMo6
My earlier snippets only reorder the associative data. The following will shuffle the associations without shuffling the key orders. It does not guarantee that all initially associations will be destroyed -- which I feel is beneficial / less predictable in a randomized result.
function random_disassociate(&$assoc_array)
{
if (sizeof($assoc_array) < 2) {
return; // data cannot be disassociated
}
$keys = array_keys($assoc_array);
shuffle($assoc_array);
$assoc_array = array_combine($keys, $assoc_array);
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
random_disassociate($arr);
var_export($arr);
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
add a comment |
Rather than making iterated rand()
calls, you should randomize the data once for best efficiency. To do this, just isolate the keys, shuffle them, then rejoin the values to the appropriate keys in the new order.
Code: (Demo)
function preserve_shuffle(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
for ($index = 0, $length = count($keys); $index < $length; ++$index) {
$result[$keys[$index]] = $arr[$keys[$index]];
}
$arr = $result;
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
preserve_shuffle($arr);
var_export($arr);
Or, if you prefer greater brevity or a functional syntax, you could use the following inside your custom function:
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
$arr = array_merge(array_flip($keys), $arr);
Proof that it also works: https://3v4l.org/eLMo6
My earlier snippets only reorder the associative data. The following will shuffle the associations without shuffling the key orders. It does not guarantee that all initially associations will be destroyed -- which I feel is beneficial / less predictable in a randomized result.
function random_disassociate(&$assoc_array)
{
if (sizeof($assoc_array) < 2) {
return; // data cannot be disassociated
}
$keys = array_keys($assoc_array);
shuffle($assoc_array);
$assoc_array = array_combine($keys, $assoc_array);
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
random_disassociate($arr);
var_export($arr);
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
add a comment |
Rather than making iterated rand()
calls, you should randomize the data once for best efficiency. To do this, just isolate the keys, shuffle them, then rejoin the values to the appropriate keys in the new order.
Code: (Demo)
function preserve_shuffle(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
for ($index = 0, $length = count($keys); $index < $length; ++$index) {
$result[$keys[$index]] = $arr[$keys[$index]];
}
$arr = $result;
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
preserve_shuffle($arr);
var_export($arr);
Or, if you prefer greater brevity or a functional syntax, you could use the following inside your custom function:
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
$arr = array_merge(array_flip($keys), $arr);
Proof that it also works: https://3v4l.org/eLMo6
My earlier snippets only reorder the associative data. The following will shuffle the associations without shuffling the key orders. It does not guarantee that all initially associations will be destroyed -- which I feel is beneficial / less predictable in a randomized result.
function random_disassociate(&$assoc_array)
{
if (sizeof($assoc_array) < 2) {
return; // data cannot be disassociated
}
$keys = array_keys($assoc_array);
shuffle($assoc_array);
$assoc_array = array_combine($keys, $assoc_array);
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
random_disassociate($arr);
var_export($arr);
Rather than making iterated rand()
calls, you should randomize the data once for best efficiency. To do this, just isolate the keys, shuffle them, then rejoin the values to the appropriate keys in the new order.
Code: (Demo)
function preserve_shuffle(&$arr) #Shuffles the key-value associations in an array.
{
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
for ($index = 0, $length = count($keys); $index < $length; ++$index) {
$result[$keys[$index]] = $arr[$keys[$index]];
}
$arr = $result;
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
preserve_shuffle($arr);
var_export($arr);
Or, if you prefer greater brevity or a functional syntax, you could use the following inside your custom function:
$keys = array_keys($arr); #extract the keys from the array.
shuffle($keys);
$arr = array_merge(array_flip($keys), $arr);
Proof that it also works: https://3v4l.org/eLMo6
My earlier snippets only reorder the associative data. The following will shuffle the associations without shuffling the key orders. It does not guarantee that all initially associations will be destroyed -- which I feel is beneficial / less predictable in a randomized result.
function random_disassociate(&$assoc_array)
{
if (sizeof($assoc_array) < 2) {
return; // data cannot be disassociated
}
$keys = array_keys($assoc_array);
shuffle($assoc_array);
$assoc_array = array_combine($keys, $assoc_array);
}
$arr = ["a" => "apple", "b" => "banana", "c" => "capsicum", "d" => "dill"];
random_disassociate($arr);
var_export($arr);
edited 1 hour ago
answered 16 hours ago
mickmackusa
1,002112
1,002112
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
add a comment |
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
Your function version doesn't work.
– Tobi Alafin
13 hours ago
Your function version doesn't work.
– Tobi Alafin
13 hours ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
That doesn't rearrange the key to value mappings. It just changes the order in which they are presented, but the key to value mappings are the same. The function is supposed to rearrange the key to value mappings.
– Tobi Alafin
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
You require all initial pairs to be disassociated in the result?
– mickmackusa
1 hour ago
add a comment |
The swap()
function is unecessary
There's no need to create a swap()
function. This can be done as a one-liner using native PHP. And, generally speaking, native functionality is going to be more performant than user-defined functions. It also means less code for you to write or maintain.
list($a,$b) = [$b, $a];
This takes two values, places them in an array and then using list()
swaps them. In your case it would look like:
list($arr[$keys[$i]],$arr[$keys[$target]]) = [$arr[$keys[$target]], $arr[$keys[$i]]];
Friendly reminder: don't use short tags
Short PHP tags (<?
) has been discouraged for a long time. Although it is still supported it is disabled by default in the php.ini file and its use is discouraged. It sounds like it is not a big deal but this means having to make sure every time you set up an environment for this to run you have to make a special configuration change which is risky and time consuming and really shouldn't be necessary. (The short echo tag (<?=
) is not discouraged and always available so feel free to use that as much as you like).
PHP also allows for short open tag
<?
(which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).
Source
New contributor
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
add a comment |
The swap()
function is unecessary
There's no need to create a swap()
function. This can be done as a one-liner using native PHP. And, generally speaking, native functionality is going to be more performant than user-defined functions. It also means less code for you to write or maintain.
list($a,$b) = [$b, $a];
This takes two values, places them in an array and then using list()
swaps them. In your case it would look like:
list($arr[$keys[$i]],$arr[$keys[$target]]) = [$arr[$keys[$target]], $arr[$keys[$i]]];
Friendly reminder: don't use short tags
Short PHP tags (<?
) has been discouraged for a long time. Although it is still supported it is disabled by default in the php.ini file and its use is discouraged. It sounds like it is not a big deal but this means having to make sure every time you set up an environment for this to run you have to make a special configuration change which is risky and time consuming and really shouldn't be necessary. (The short echo tag (<?=
) is not discouraged and always available so feel free to use that as much as you like).
PHP also allows for short open tag
<?
(which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).
Source
New contributor
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
add a comment |
The swap()
function is unecessary
There's no need to create a swap()
function. This can be done as a one-liner using native PHP. And, generally speaking, native functionality is going to be more performant than user-defined functions. It also means less code for you to write or maintain.
list($a,$b) = [$b, $a];
This takes two values, places them in an array and then using list()
swaps them. In your case it would look like:
list($arr[$keys[$i]],$arr[$keys[$target]]) = [$arr[$keys[$target]], $arr[$keys[$i]]];
Friendly reminder: don't use short tags
Short PHP tags (<?
) has been discouraged for a long time. Although it is still supported it is disabled by default in the php.ini file and its use is discouraged. It sounds like it is not a big deal but this means having to make sure every time you set up an environment for this to run you have to make a special configuration change which is risky and time consuming and really shouldn't be necessary. (The short echo tag (<?=
) is not discouraged and always available so feel free to use that as much as you like).
PHP also allows for short open tag
<?
(which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).
Source
New contributor
The swap()
function is unecessary
There's no need to create a swap()
function. This can be done as a one-liner using native PHP. And, generally speaking, native functionality is going to be more performant than user-defined functions. It also means less code for you to write or maintain.
list($a,$b) = [$b, $a];
This takes two values, places them in an array and then using list()
swaps them. In your case it would look like:
list($arr[$keys[$i]],$arr[$keys[$target]]) = [$arr[$keys[$target]], $arr[$keys[$i]]];
Friendly reminder: don't use short tags
Short PHP tags (<?
) has been discouraged for a long time. Although it is still supported it is disabled by default in the php.ini file and its use is discouraged. It sounds like it is not a big deal but this means having to make sure every time you set up an environment for this to run you have to make a special configuration change which is risky and time consuming and really shouldn't be necessary. (The short echo tag (<?=
) is not discouraged and always available so feel free to use that as much as you like).
PHP also allows for short open tag
<?
(which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option).
Source
New contributor
edited 18 hours ago
New contributor
answered 18 hours ago
John Conde
1786
1786
New contributor
New contributor
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
add a comment |
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
Oh my, the great John Conde comes to CodeReview. Welcome sir! I wonder what your opinion on php7 array deconstruction is.
– mickmackusa
16 hours ago
1
1
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I like it. In fact, it is better than my proposed solution. I've been stuck in a PHP 5.6 world due to the size and complexity of my company's applications. But we're finishing up our (large and painful) PHP 7 migration so I'll get to start thinking in PHP 7 full time very soon!
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
I don't know about great but I figured participating here will help me think creatively as I do less coding now than every before and I hope to keep my mind sharp. Or at least working.
– John Conde
15 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
@JohnConde I'm aware that it is discouraged, and only use it for convenience in a testing/learning environment.
– Tobi Alafin
13 hours ago
add a comment |
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f210790%2fshuffle-array-elements-by-rearranging-the-key-value-associations%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown