Home >Backend Development >PHP Tutorial >A simple example of php disrupting an array, a two-dimensional array, and a multi-dimensional array_php example

A simple example of php disrupting an array, a two-dimensional array, and a multi-dimensional array_php example

WBOY
WBOYOriginal
2016-07-06 13:32:13845browse

The shuffle function in PHP can only shuffle one-dimensional arrays. Is there any way to shuffle multi-dimensional arrays quickly and conveniently?
is provided in the manual

<&#63;php 
function shuffle_assoc($list) { 
 if (!is_array($list)) return $list; 
 $keys = array_keys($list); 
 shuffle($keys); 
 $random = array(); 
 foreach ($keys as $key) 
  $random[$key] = $list[$key]; 
 return $random; 
} 
&#63;>

The above is for two-dimensional arrays!

What is the following shuffle method for multi-dimensional arrays? As convenient and fast as possible :

<&#63;php 
function shuffle_assoc($list) { 
if (!is_array($list)) return $list; 

$keys = array_keys($list); 
shuffle($keys); 
$random = array(); 
foreach ($keys as $key) 
$random[$key] = shuffle_assoc($list[$key]); 

return $random; 
} 
&#63;>

The following function is also from the PHP manual, which can scramble multi-dimensional arrays:

/**
* Shuffles an associative array recursive
* 
* @param array $array
* @return array
*
*/

function rec_assoc_shuffle($array)
{
 $ary_keys = array_keys($array);
 $ary_values = array_values($array);
 shuffle($ary_values);
 foreach($ary_keys as $key => $value) {
  if (is_array($ary_values[$key]) AND $ary_values[$key] != NULL) {
   $ary_values[$key] = rec_assoc_shuffle($ary_values[$key]);
  }
  $new[$value] = $ary_values[$key];
 }
 return $new;
}

The above is the simple example of php disrupting an array, a two-dimensional array, and a multi-dimensional array brought to you by the editor. I hope you will support Script Home~

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn