php 数组相关方法的一些实际妙用

一、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);
posted @   艾薇-Ivy  阅读(615)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示