首页 > 编程语言 >php函数入门学习(数组常见函数2 & 文件基础读写)

php函数入门学习(数组常见函数2 & 文件基础读写)

时间:2024-07-16 09:29:33浏览次数:13  
标签:arr 函数 读写 echo 数组 array php age name

// 1、写一个函数,传入数组,返回数组中元素为数字且大于10的新结果数组

function getNumArr($arr) {     if (!$arr) return '请传入数组';     $arr2 = array_filter($arr, function ($v) {         // echo gettype($v)."<br>";         return gettype($v) === 'integer' && $v > 10;     });     return $arr2; }
echo "1、" . "<br>"; print_r(getNumArr(['1', '2', 3, 44])); echo "<br>"; echo "<hr>";

// 2、写一个函数,传入字串,内容为中文逗号或英文逗号分隔组成的手机号集合,判断手机号是否符合格式规范。返回数组

function getPhoneArr($str) {     // 先把中文逗号替换成英文的,再统一切割成数组     $arr1 = str_replace(',', ',', $str);     $arrPhone = explode(',', trim($arr1));     // 正则一次性搞定 ↓     // $arr3 = preg_split("/(,|,)/",$str);     $arrReturn = array();     foreach ($arrPhone as $v) {         if ($v) {             $arrReturn[] = array(                 'phone' => $v,                 'isRealPhone' => preg_match("/^1[34578]\d{9}$/", $v) ? '手机号格式正确' : '手机号格式不符合格式规范',             );         }     }     return $arrReturn; }
echo "2、" . "<br>"; print_r(getPhoneArr('15677778888,19777778888,18688889999,')); echo "<br>"; echo "<hr>";

// 3、写一个函数,传入数组套数组,形如[["name" => "张三", "age" => 20], ["name" => "李四", "age" => 30],]

// 返回a: 年龄大于18的人 // 返回b: 女性 function getWomen($arr) {     $arrAdults = array();     $arrWomen = array();     // 还是foreach节能,只要循环一次     foreach ($arr as $v) {         if ($v && $v["age"] && $v["age"] >= 18) {             $arrAdults[] = $v;         }         if ($v && $v["gender"] && $v["gender"] === 'woman') {             $arrWomen[] = $v;         }     }     // $arrAdults = array_filter($arr, function($v){     //     return $v && $v["age"] && $v["age"] >= 18;     // });     // $arrWomen = array_filter($arr, function($v){     //     return $v && $v["gender"] && $v["gender"] === 'woman';     // });     return array(         "a" => $arrAdults,         "b" => $arrWomen,     ); } echo "3、" . "<br>"; print_r(getWomen([["name" => "张美丽", "age" => 20, "gender" => 'woman'], ["name" => "李四娃", "age" => 30, "gender" => 'man'], ["name" => "李四美", "age" => 3, "gender" => 'woman']])); echo "<br>"; echo "<hr>";

// 4、写一个函数,传入人名、数组套数组,形如[["name" => "张三", "age" => 20], ["name" => "李四", "age" => 30],]

// 判断人名是否在数组中 function getHaveName($str, $arr) {     $arr1 = array_column($arr, 'name');     // print_r($arr1);     $isInArr = in_array($str, $arr1);     return $isInArr ? $str . '在数组中' : $str . '不在数组中'; } echo "4、" . "<br>"; echo (getHaveName("李", [["name" => "张三", "age" => 20], ["name" => "李四", "age" => 30],])); echo "<br>"; echo "<hr>";
// 5、有一篇文章,里面会有逗号和句号。删除其中重复的句子 function getNoRepeat($str) {     $arr = explode('。', trim($str));     // 移除数组中的重复值     $uniqueArr =         ($arr);     // 把字符串用句号重新拼接起来     $output = implode('。', $uniqueArr);     return $output; } echo "5、" . "<br>"; echo getNoRepeat("李四说他是个神经病,我认为不是。李四说他是个神经病,我认为不是。李四说他是个神经病,我认为不是,啊啊啊啊啊啊啊啊"); echo "<br>"; echo "<hr>";   ------  

// 今日作业:

// 读取表格内容,转化为二维数组:大数组套小数组

// 每个大数组都是一行,小数组形如:array("xx订单号" => "xxxx", "IOS订单号" => "XXXX")

// 即将第一行表头作为小数组的每个元素的key

$a = file_get_contents("data.csv"); $aa = mb_convert_encoding($a, 'UTF-8'); // 先按行分开数据 $data1 = explode("\n",  trim($aa)); $$keys = array(); $values = array();
$index = 0; foreach ($data1 as $v) {     // 分开列名和数据     if ($index === 0) {         $keys = explode(",", trim($data1[0]));     } else {         $values[] = explode(",", trim($data1[$index]));     }     $index++; }
$list = array(); // 遍历每一行数据,改造成键值对 foreach ($values as $v) {     $line = array();     $index2 = 0;     foreach ($keys as $v2) {         $line[$v2] = $v[$index2];         $index2++;     }     $list[] = $line; }
// echo "组装好的数据" . "<br>"; // var_export($list); // var_export("<hr>");

// 作业二:

// 将上述数组,还原为上图表格,并写入新文件

// 获取列名作为第一行数据 $keys2 = implode(',', array_keys($list[0])); $values2 = array(); $index3 = 0; foreach ($list as $v) {     $values2[] = implode(',', array_values($v));     $index3++; } $list2 = array(); $list2[] = $keys2; foreach ($values2 as $v) {     $list2[] = $v; } $valuesString = implode("\n", $list2); file_put_contents("new_data.csv", $valuesString); // echo "list2" . "<br>"; // var_export($valuesString); // var_export("<hr>");
// file_put_contents("111", $a, FILE_APPEND);

标签:arr,函数,读写,echo,数组,array,php,age,name
From: https://www.cnblogs.com/nangras/p/18304522

相关文章

  • 【框架】PHP框架详解-symfony框架
    目录一、框架概述二、核心组件三、特点与优势四、开发流程新机制层次网络应用框架包涵观念兼容的数据库结构开发环境捆绑应用开源项目公共特性Symfony是一个用PHP语言编写的开放源代码的Web应用框架,旨在加速Web应用程序的开发过程,提高代码的可维护性和可扩展性......
  • 一篇精通单行函数
    单行函数1.数值函数1)基本函数函数用法ABS(x)返回x的绝对值SIGN(X)单元格PI()返回圆周率的值CEIL(x),CEILING(x)返回大于或等于某个值的最小整数FLOOR(x)返回小于或等于某个值的最大整数LEAST(e1,e2,e3…)返回列表中的最小值GREATEST(e1,e2,e3…)返回列表中的最大值MOD(......
  • 模板——函数模板的基本语法和调用规则
    1.模板函数    1.1分为自动类型堆到和显示指定类型template<classT>voidSwapNum(T&a,T&b){ Ttemp=a; a=b; b=temp;}voidtest01(){ inta=10; intb=20; doublec=30.5; doubled=40.8; SwapNum(a,b);//自动类型推导 SwapNum<in......
  • VINS-Fusion源码逐行解析:updateLatestStates()函数与slideWindow()
    初始化并优化位姿后,接下来做的事是将这些位姿更新给上一帧,我们来看下updateLatestStates()源码:voidEstimator::updateLatestStates(){//锁定mPropagate,确保对最新状态的更新是线程安全的mPropagate.lock();//更新最新的时间戳,等于当前帧的时间戳加上时间延......
  • 定义损失函数并以此训练和评估模型
    基础神经网络模型搭建 【Pytorch】数据集的加载和处理(一)【Pytorch】数据集的加载和处理(二)损失函数计算模型输出和目标之间的距离。通过torch.nn包可以定义一个负对数似然损失函数,负对数似然损失对于训练具有多个类的分类问题比较有效,负对数似然损失函数的输入为对数概......
  • 四、Python集合与函数
    集合set1.不同元素组成2.无序3.集合中元素必须是不可变类型s={1,2,3,4,5}集合常用魔法s={1,2,3,4,5}s.add('s')print(s)#>>>{1,2,3,4,5,'s'}s.add(6)print(s)#>>>{1,2,3,4,5,'s',6}s.clear()print(s)s={1,2,3,4,5}v=s......
  • 入门PHP就来我这(高级)31~ 单文件上传
    有胆量你就来跟着路老师卷起来! --纯干货,技术知识分享路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。上篇文章简单的了解了介绍文件的写操作及目录的操作,本文开始着手实现文件的上传功能及单文件上传案例实现。 1文件上传文件上传可以通......
  • Vue 3 中 defineExpose() 函数的使用
    什么是defineExpose()?defineExpose()是Vue3提供的一个CompositionAPI函数,用于明确指定哪些内部响应式状态或函数可以被外部访问。如何使用defineExpose()?在子组件中定义:import{ref,defineExpose}from'vue'exportdefault{setup(){constcount=......
  • 全面分析构造函数(1)
    什么是构造函数             构造函数是在创建类对象时,由系统自动调用,初始化新对象的函数,给其中的成员变量赋值。构造函数没有返回值,名字与类名相同,有参数,所以可以进行函数重载,构造函数大致可以分为一下几类:无参构造:没有参数的构造函数,也是默认构造函数有参......
  • php数据库连接代码
    在PHP中连接到数据库(以MySQL为例)通常使用 mysqli 或 PDO 扩展。以下是使用这两种方法连接到MySQL数据库的示例代码。使用mysqli<?php  $servername = "localhost";  // 数据库服务器名称  $username = "username";     // 数据库用户名  $pass......