php打乱数组二维数组多维数组的简单实例

php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了

<?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;
}
?>

上面这个是针对二维数组的!

下面针对多维数组的乱序方法?尽可能的方便快速:

<?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;
}
?>

以下函数也是出自php手册,可以打乱多维数组:

/**
* 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;
}

以上就是小编为大家带来的php打乱数组二维数组多维数组的简单实例全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • PHP将二维数组某一个字段相同的数组合并起来的方法

    本文实例讲述了PHP将二维数组某一个字段相同的数组合并起来的方法.分享给大家供大家参考,具体如下: 例子: array(3) { [0]=> array(16) { ["id"]=> string(2) "42" ["uid"]=> string(2) "14" ["euid"]=> string(2) "56" ["did"]=> st

  • PHP二维数组矩形转置实例

    PHP二维数组矩形转置实例 <?php //二维数组转置 //定义一个二维数组 $arr =array(array(1,2,3),array(4,5,6)); //定义一个数组来放置转置的数据 $arr1=array(); //转置前遍历 echo "转置前:<br/>"; for($i=0;$i<count($arr);$i++){ for($j=0;$j<count($arr[$i]);$j++){ echo $arr[$i][$j]; } echo

  • PHP获取二维数组中某一列的值集合

    PHP还是比较常用的,于是我研究了一下PHP二维数组.在处理php数组的时候,有一种需求特别的频繁,如下二维数组: $arr = array( 1=>array( 'id' => 5, 'name' => '张三' ), 2=>array( 'id' => 6, 'name' => '李四' ) ); 目的就是要取到key为name的集合,得到这个结果: $arr2 = array( 0=>'张三', 1=>'李四' ); 这里有几种方法: 1:最简单的,f

  • PHP二维数组排序简单实现方法

    本文实例讲述了PHP二维数组排序简单实现方法.分享给大家供大家参考,具体如下: function multi_compare($a, $b) { $val_arr = array( 'gold'=>'asc', 'silver'=>'desc'//还可以增加额外的排序条件 ); foreach($val_arr as $key => $val){ if($a[$key] == $b[$key]){ continue; } return (($val == 'desc')?-1:1) *

  • PHP 二维数组和三维数组的过滤

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <?php $arr = [ [,,,,], [,,,,] ]; $arr = [ 'list' => [ [,,,], [,,,], [,,,], ] ]; $arr = [ 'list' => [ [,,,], [,,,], [,,,] ] ]; $res = array_map(function($arr){ return array_filter($arr, function($v) { return $v !== ; });

  • php将一维数组转换为每3个连续值组成的二维数组

    本文实例讲述了php实现将一维数组转换为每3个连续值组成的二维数组.分享给大家供大家参考,具体如下: <?php $aaa = array('aa','bb','cc','dd','ee','ff','gg','hh','ii'); for($i=0;$i<3;$i++) { $bbb[] = array_slice($aaa, $i * 3 ,3); } print_r($bbb); ?> 运行结果如下: Array ( [0] => Array ( [0] => aa [

  • PHP按指定键值对二维数组进行排序的方法

    本文实例讲述了PHP按指定键值对二维数组进行排序的方法.分享给大家供大家参考,具体如下: 问题: 有数组: 复制代码 代码如下: array(0=>array('id'=>1,'price'=>50),1=>array('id'=>2,'price'=>60)); 要求根据数组的price这个字段进行排序. 实现代码如下: <?php $array[] = array('id'=>1,'price'=>50); $array[] = array('id

  • PHP中使用foreach()遍历二维数组的简单实例

    第一种类型 想用foreach()遍历整个二维数组: $team = array('lk','ok'); $book = array('linux服务器配置与管理',$team); foreach($book as $k=>$val) //for $book each $value( as ) echo $k.'=>'.$val.''; 输出结果是: 0=>linux服务器配置与管理 1=>Array 当然,其实我是想要所有具体内容,而不是输出array... 所以应该采用如下做法

  • PHP list() 将数组中的值赋给变量的简单实例

    list() PHP list() 用一步操作把数组中的值赋给一些变量.同 array() 一样,list() 不是真正的函数,而是语言结构. 语法: void list( mixed var, mixed ... )注意: list() 仅能用于数字索引的数组并假定数字索引从 0 开始. 例子1: <?php $arr_age = array(18, 20, 25); list($wang, $li, $zhang) = $arr_age; echo $wang; //输出:18 echo $

  • php打乱数组二维数组多维数组的简单实例

    php中的shuffle函数只能打乱一维数组,有什么办法快速便捷的打乱多维数组?手册上提供了 <?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

  • Thinkphp将二维数组变为标签适用的一维数组方法总结

    本文实例总结了Thinkphp将二维数组变为标签适用的一维数组方法.分享给大家供大家参考.具体实现方法如下: 方法一: 复制代码 代码如下: $projectList=arr1tag($projectList,array('','请选择'),'project_name');    //其中$list为传值过来的二维数组,$default为默认值,$k为指定的表字段  function arr1tag($list,$default='',$k=''){   $tmp='';   if(array(

  • PHP实现判断数组是一维、二维或几维的方法

    本文实例讲述了PHP实现判断数组是一维.二维或几维的方法.分享给大家供大家参考,具体如下: 这里使用的自定义函数,可以判断数组是一维的,还是二维的,或是几维的数组: function getmaxdim($vDim) { if(!is_array($vDim)) return 0; else { $max1 = 0; foreach($vDim as $item1) { $t1 = $this->getmaxdim($item1); if( $t1 > $max1) $max1 = $t1;

  • python 去除二维数组/二维列表中的重复行方法

    之前提到去除一维数组中的重复元素用unique()函数,如果要去除二维数组中的重复行该怎么操作呢? import numpy as np arr = np.array([[1, 2],[3, 4],[5, 6],[7, 8],[3, 4],[1, 2]]) print(np.array(list(set([tuple(t) for t in arr])))) 输出: [[1 2] [3 4] [5 6] [7 8]] 如果是二维列表,列表中每个元素还是列表 list2=list(set([tup

  • 详解go 动态数组 二维动态数组

    go使用动态数组还有点麻烦,比python麻烦一点,需要先定义. 动态数组申明 var dynaArr []string 动态数组添加成员 dynaArr = append(dynaArr, "one") ```go # 结构体数组 ```go package main import ( "fmt" ) type A struct{ Path string Length int } func main() { var dynaArr []A t := A{"

  • Java 在游戏中探索数组二维数组

    目录 什么是数组 举例(装备栏) 声明数组 int类型 String类型 数组操作 遍历数组 二维数组 声明二维数组 这里是JAVA成仙路,关注我学习JAVA不迷路 什么是数组 数组(Array)是有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量/12713827).用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式.

  • Java 在游戏中探索数组二维数组

    目录 什么是数组 举例(装备栏) 声明数组 int类型 String类型 数组操作 遍历数组 二维数组 声明二维数组 什么是数组 数组(Array)是有序的元素序列. 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量/12713827).用于区分数组的各个元素的数字编号称为下标.数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式. 这些有序排列的同类数据元素的集合称为数组. 数

随机推荐