一、php数组合并两个数组(一个数组做键名,另一个做值)

有两个方法

1、循环

$arry_a = array(0, 1, 2);
$arry_b = array('dongsir','董先生','董先生的CSDN博客'); $arry_ab = [];
foreach ($arry_b as $key => $value) {
$arry_ab[$arry_a[$key]] = $value;
}
echo "<pre>";
print_r($arry_ab);

2、array_combine函数

public function test()
{
  $arry_a = array(0, 1, 2);
  $arry_b = array('dongsir','董先生','董先生的CSDN博客');   $arry_ab = array_combine($arry_a ,$arry_b );
  print_r($arry_ab);
}
 

二、php利用array_search与array_column实现二维数组查找

<?php
$userdb = array(
0 => array(
'uid' => 100,
'name' => 'Sandra Shush',
'url' => 'urlof100'
), 1 => array(
'uid' => 5465,
'name' => 'Stefanie Mcmohn',
'pic_square' => 'urlof100'
), 2 => Array(
'uid' => 40489,
'name' => 'Michael',
'pic_square' => 'urlof40489'
)
); $found_key = array_search(40489, array_column($userdb, 'uid'));
/**
如果$userdb很大,建议使用一个变量,避免搜索每个元素时都调用array_column()
$uid = array_column($userdb, 'uid');
$found_key = array_search(40489, $uid);
*/
var_dump($found_key);//返回查询到的值的key--2 ?>

三、PHP二维数组搜索返回数组

 1 $ar = array(
2 2 => array(
3 'catid' => 2,
4 'catdir' => 'notice',
5 ),
6 5 => array(
7 'catid' => 5,
8 'catdir' => 'subject',
9 ),
10 6=> array(
11 'catid' => 6,
12 'catdir' => 'news'
13 ),
14 );
15
16 $catid = 5;
17 $r = array_filter($ar, function($t) use ($catid) { return $t['catid'] == $catid; });
18 print_r($r);

返回

1 Array
2 (
3 [5] => Array
4 (
5 [catid] => 5
6 [catdir] => subject
7 )
8
9 )

四、数组实现分页功能

array_slice() -从数组中取出一段

也就是说用这个函数可以和sql语句一样实现分页,原理是将查询出的数组,取出从指定下标开始到指定长度的数组

我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求

array_slice(原数组,开始下标,要取几条),这里用到三个参数(如果不写第三个参数 返回直到数组末端的所有元素)

$count = count($article);//总条数
$start=($page-1)*$pagesize;//偏移量,当前页-1乘以每页显示条数
$article = array_slice($article,$start,$pagesize);

php 数组相关方法的一些实际妙用的更多相关文章

  1. 数组相关方法积累(vue\ag等特别常用)

    改变原数组的: shift:将第一个元素删除并且返回删除元素,空即为undefined unshift:向数组开头添加元素,并返回新的长度 pop:删除最后一个并返回删除的元素 push:向数组末尾添 ...

  2. ruby中的数组相关方法介绍

    l = ["a","b","c","d","e","f",'g'] puts l ...

  3. JavaScript基础语法及数组相关方法(1)

    day51 参考:https://www.cnblogs.com/liwenzhou/p/8004649.html <!DOCTYPE html> <html lang=" ...

  4. zepto源码--核心方法(类数组相关)--学习笔记

    从这篇起,在没有介绍到各类插件之前,后面将陆续介绍zepto对外暴露的核心方法.即$.fn={}里面的所有方法的介绍.会配合zepto的API进行介绍. 其实前面已经介绍了几个,如width,heig ...

  5. jQuery源代码阅读之二——jQuery静态属性和方法

    一.jQuery.extend/jQuery.fn.extend //可接受的参数类型如下:jQuery.extend([deep],target,object1,[objectN]) jQuery. ...

  6. Beetl2.2使用说明书20151201

    李家智<xiandafu@126.com> Table of Contents 1. 什么是Beetl 2. 基本用法 2.1. 从GroupTemplate开始 2.2. 模板基础配置 ...

  7. 《JavaScript模式》读书笔记

    简介 在软件开发过程中,模式是指一个通用问题的解决方案.一个模式不仅仅是一个可以用来复制粘贴的代码解决方案,更多地是提供了一个更好的实践经验.有用的抽象化表示和解决一类问题的模板. 对象有两大类: 本 ...

  8. 【转】 Android 开发 之 JNI入门 - NDK从入门到精通

    原文网址:http://blog.csdn.net/shulianghan/article/details/18964835 NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub  ...

  9. 【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通

    NDK项目源码地址 : -- 第一个JNI示例程序下载 : GitHub - https://github.com/han1202012/NDKHelloworld.git -- Java传递参数给C ...

随机推荐

  1. 转载一篇比较详细的讲解html,css的一篇文章,很长

      转载自这里,转载请注明出处. DIV+CSS系统学习笔记回顾   第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 ...

  2. 安装wget 、 wget命令

    今天给服务器安装新LNMP环境时,wget 时提示 -bash:wget command not found,很明显没有安装wget软件包.一般linux最小化安装时,wget不会默认被安装. 可以通 ...

  3. css background之设置图片为背景技巧

    原文 Background是什么意思,翻译过来有背景意思.同样在css里面作为css属性一成员同样是有背景意思,并且是设置背景图片.背景颜色.背景图片截取等样式. 首先先来看看background有那 ...

  4. js判断是否联网

    // navigator.onLine if (navigator.onLine){ //正常工作 console.log("在线状态............................ ...

  5. Python 使用工具总结

    1.比较两个list大小:operator模块 operator.lt(a, b) operator.le(a, b) operator.eq(a, b) operator.ne(a, b) oper ...

  6. echarts中国地图3D各个城市标点demo

    <!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta ...

  7. PHP json_encode函数的参数说明

    PHP json_encode函数的参数说明 一.总结 一句话总结: · json_encode常常被用于将数组转换成json格式的字符串来表示,但是json_encode的第一个参数却并不一定是数组 ...

  8. 括号序列模型--序列dp--U86873 小Y的精灵国机房之旅

    括号序列模型及解法 >Codeforces314E◦给定一个长度为n的仅包含左右括号和问号的字符串,将问号变成左括号或右括号使得该括号序列合法,求方案总数.◦例如(())与()()都是合法的括号 ...

  9. vue-图片预览,查看大图

    [前言] 在 vue 项目中经常碰到图片预览需求,也就是点击小图查看大图.也有一些这样的第三方插件,如 vue-preview 等.但使用起来感觉版本经常变,而且有时 UI 需要在预览页面上加更多的东 ...

  10. ubantu下docker安装

    开始安装 由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本: sudo apt-get remove docker docker-engine docker-ce docke ...