热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php改变数组的长度,php取数组中指定长度的数据的方法分享

在php程序中,减少查询的次数,也是一个提高网站整体性能的办法。将满足基本条件的数据全部查询出来:$list_json$this-acc

在php程序中,减少查询的次数,也是一个提高网站整体性能的办法。

将满足基本条件的数据全部查询出来:

$list_json = $this->accessCourse('ID DESC', 1);//查询出所以满足基本条件的数据,状态正常...

$list = Json_decode($list_json, true);//因为查询出来的是json格式这里将其转换成array格式

//热门课程

$toplist = array_sort($list, 'NUM', SORT_DESC);//二维数组排序

$this->assign('toplist', $toplist);

//感兴趣

$interest = findArrayList($list,9);//筛选出9条数据

$this->assign('interest', $interest);

//试听课程

$listen_yw = findArrayList($list,4,'SUBJECT',1);//语文

$listen_sx = findArrayList($list,4,'SUBJECT',2);//数学

$listen_yy = findArrayList($list,4,'SUBJECT',3);//英语

$listen_wl = findArrayList($list,4,'SUBJECT',4);//物理

$listen_hx = findArrayList($list,4,'SUBJECT',5);//化学

$this->assign('listen_yw', $listen_yw);

$this->assign('listen_sx', $listen_sx);

$this->assign('listen_yy', $listen_yy);

$this->assign('listen_wl', $listen_wl);

$this->assign('listen_hx', $listen_hx);

?>

以下是findArrayList函数的实现代码。

/**

* 查询数组

* @param array $array

* @param int $length

* @param string $field

* @param $string $value

* @return array

* @edit by www.jbxue.com

**/

function findArrayList($array, $length = null, $field = null, $value = null){

if(!is_array($array)){

return $array;

}

$new_arr = array();

if(!is_null($field)){

foreach ($array as $k=>$v){

if($array[$k][$field] == $value){

$new_arr[$k] = $v;

}

}

if(empty($new_arr)){

return ;

}

}

if(empty($new_arr)){

$new_arr = $array;

}

if(!is_null($length)){

$new_arr = array_slice($new_arr,0,$length);//取出数组中指定的长度

}

return $new_arr;

}

?>

代码说明:

array_slice 从数组中取出一段

array array_slice ( array array, int offset [, int length [, bool preserve_keys]] )

array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。

如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。

如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset

开始一直到 array 的末端。

注意:

array_slice() 默认将重置数组的键。自 PHP 5.0.2 起,可以通过将 preserve_keys 设为 TRUE 来改变此行为。

还有一个相对应的 array_splice 把数组中的一部分去掉并用其它值取代。

array array_splice ( array &input, int offset [, int length [, array replacement]] )

array_splice() 把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用 replacement 数组中的单元取代。返回一个包含有被移除单

元的数组。注意 input 中的数字键名不被保留。

如果 offset 为正,则从 input 数组中该值指定的偏移量开始移除。如果 offset 为负,则从 input 末尾倒数该值指定的偏移量开始移除。

如果省略 length,则移除数组中从 offset 到结尾的所有部分。

如果指定了 length 并且为正值,则移除这么多单元。

如果指定了 length 并且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的单元。

小技巧:

当给出了 replacement 时要移除从 offset 到数组末尾所有单元时,用 count($input) 作为 length。

如果给出了 replacement 数组,则被移除的单元被此数组中的单元替代。

如果 offset 和 length 的组合结果是不会移除任何值,则 replacement 数组中的单元将被插入到 offset 指定的位置。

注意:

替换数组中的键名不保留。如果用来替换的值只是一个单元,那么不需要给它加上 array(),除非该单元本身就是一个数组。

希望通过以上的介绍,大家可以掌握array_splice函数的用法,以及从数组中取指定长度数据的方法。

脚本学堂,祝大家学习进步。



推荐阅读
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 本文介绍了 Python 中的基本数据类型,包括不可变数据类型(数字、字符串、元组)和可变数据类型(列表、字典、集合),并详细解释了每种数据类型的使用方法和常见操作。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 自然语言处理(NLP)——LDA模型:对电商购物评论进行情感分析
    目录一、2020数学建模美赛C题简介需求评价内容提供数据二、解题思路三、LDA简介四、代码实现1.数据预处理1.1剔除无用信息1.1.1剔除掉不需要的列1.1.2找出无效评论并剔除 ... [详细]
  • iOS 不定参数 详解 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文详细介绍了如何在PHP中记录和管理行为日志,包括ThinkPHP框架中的日志记录方法、日志的用途、实现原理以及相关配置。 ... [详细]
  • 本文探讨了如何在 Java 中将多参数方法通过 Lambda 表达式传递给一个接受 List 的 Function。具体分析了 `OrderUtil` 类中的 `runInBatches` 方法及其使用场景。 ... [详细]
  • 本文记录了 JavaScript 中正则表达式的使用方法和常见操作,包括匹配、替换、搜索等。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 过去查询Mysql的时候,都见3306对所有端口开放着,感觉不安全。netstat -anlp | grep mysqltcp 0&am ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
author-avatar
popgine
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有