Home  >  Article  >  php教程  >  A simple example of php disrupting an array, a two-dimensional array, and a multi-dimensional array, disrupting a two-dimensional array

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

WBOY
WBOYOriginal
2016-07-06 14:24:50901browse

A simple example of php shuffling an array, a two-dimensional array, a multi-dimensional array, shuffling a two-dimensional array

The shuffle function in php can only shuffle a one-dimensional array, there are What's a quick and easy way to scramble a multidimensional array?
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 Bangkejia~

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