php 将 sort 与 slice 写入函数并调用失败?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 将 sort 与 slice 写入函数并调用失败?相关的知识,希望对你有一定的参考价值。

//原意是调用函数 将无序数组 排列为有序,再切割,剩余最小值与最大值,然后输出 $arr[1] ,即最大值,但数组切割貌似不起作用,何解?(其他方法我会,但就是想用排序与切割输出,求前辈指教)

<?php

$myArr=array(0,-1,10,1,50);

function num(&$arr)
sort($arr);
array_slice($arr,1,-1);


num($myArr);
print_r($myArr[1]);
?>
刚才看了手册里array_slice函数,作用是切割数组部分值,并(将切割部分)返回给函数,实际上没有对原来的数组重写,就是说function num得到排序、切割部分两个返回值,而不存在排序-切割部分的新数组值,非要求数组剩余值怕是要重定义数组了:
$a=array(3,5,1,2,7);
sort($a);

function rec(&$a)
$a=array($a[0],$a[count($a)-1]);
return $a;

rec($a);
print_r($a);

对"切割"理解歧义了...

$myArr=array(0,-1,10,1,50);
sort($myArr); //进行排序
$sum = count($myArr) - 1; //数字从0开始需要-1
$max = $myArr[$sum];
print_R($max);

你的代码错误了。首先方法里面就没有return

追问

如果用array_slice,该如何写?

追答    $myArr=array(0,-1,10,1,50);
    function num(&$arr)
        sort($arr);
        $arr = array_slice($arr,-1,1);
        return $arr;
    
    $myArr = num($myArr);
    print_r($myArr[0]);


你看一下array_slice()函数,第二个参数是开始位置

array_slice(array,offset,length,preserve)

参数

描述

array    
必需。规定输入的数组。    

offset    

必需。数值。规定取出元素的开始位置。


如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。

   

length    

可选。数值。规定被返回数组的长度。


如果 length 为正,则返回该数量的元素。


如果 length 为负,则序列将终止在距离数组末端这么远的地方。


如果省略,则序列将从 offset 开始直到 array 的末端。

   

preserve    

可选。可能的值:


true -  保留键

false - 默认 - 重置键

参考技术A 欢迎来到渗透吧,请不要再本吧发送任何接单收徒信息,为了本吧首页版面干净,解md5请去专门的md5解密贴。

PHP基于数组的分页函数(核心函数array_slice())

  1. <?php  
  2. /** 
  3.  * 数组分页函数  核心函数  array_slice 
  4.  * 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中 
  5.  * $count   每页多少条数据 
  6.  * $page   当前第几页 
  7.  * $array   查询出来的所有数组 
  8.  * order 0 - 不变     1- 反序 
  9.  */   
  10.   
  11. function page_array($count,$page,$array,$order){  
  12.     global $countpage; #定全局变量  
  13.     $page=(empty($page))?‘1‘:$page; #判断当前页面是否为空 如果为空就表示为第一页面   
  14.        $start=($page-1)*$count; #计算每次分页的开始位置  
  15.     if($order==1){  
  16.       $array=array_reverse($array);  
  17.     }     
  18.     $totals=count($array);    
  19.     $countpage=ceil($totals/$count); #计算总页面数  
  20.     $pagedata=array();  
  21.     $pagedata=array_slice($array,$start,$count);  
  22.     return $pagedata;  #返回查询数据  
  23. }  
  24. /** 
  25.  * 分页及显示函数 
  26.  * $countpage 全局变量,照写 
  27.  * $url 当前url 
  28.  */  
  29. function show_array($countpage,$url){  
  30.      $page=empty($_GET[‘page‘])?1:$_GET[‘page‘];  
  31.      if($page > 1){  
  32.         $uppage=$page-1;  
  33.   
  34.      }else{  
  35.         $uppage=1;  
  36.      }  
  37.   
  38.      if($page < $countpage){  
  39.         $nextpage=$page+1;  
  40.   
  41.      }else{  
  42.             $nextpage=$countpage;  
  43.      }  
  44.          
  45.         $str=‘<div style="border:1px; width:300px; height:30px; color:#9999CC">‘;  
  46.     $str.="<span>共  {$countpage}  页 / 第 {$page} 页</span>";  
  47.     $str.="<span><a href=‘$url?page=1‘>   首页  </a></span>";  
  48.     $str.="<span><a href=‘$url?page={$uppage}‘> 上一页  </a></span>";  
  49.     $str.="<span><a href=‘$url?page={$nextpage}‘>下一页  </a></span>";  
  50.     $str.="<span><a href=‘$url?page={$countpage}‘>尾页  </a></span>";  
  51.     $str.=‘</div>‘;  
  52.     return $str;  
  53. }  
  54. ?>

以上是关于php 将 sort 与 slice 写入函数并调用失败?的主要内容,如果未能解决你的问题,请参考以下文章

PHP基于数组的分页函数(核心函数array_slice())

php array_slice 取出数组中的一段序列实例

python基础之内置函数与匿名函数

Go 语言入门很简单:sort 中的sortInts 方法

PHP基于数组的分页函数(核心函数array_slice())

深度解析PHP数组函数array_slice