PHP数组操作之怎样删除数组中的首尾元素?

在之前的文章《怎样解决PHP中数组的排序和打乱问题?》中详细的介绍了PHP中数组排序的相关知识,本篇文章我们来看一下PHP中删除数组头部或者尾部元素操作的相关知识,希望对大家有帮助!

在之前的文章《怎样解决PHP中数组的排序和打乱问题?》中详细的介绍了PHP中数组排序的相关知识,本篇文章我们来看一下PHP中删除数组头部或者尾部元素操作的相关知识,希望对大家有帮助!

PHP数组操作之怎样删除数组中的首尾元素?

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

在上一篇文章中我们了解了想要将多个数组进行排序可以使用array_multisort函数,想要将数组内的元素进行打乱的话可以使用shuffle函数来实现,这些都是数组操作中比较常见的操作,下面我们来看一下在PHP中怎样才能完成删除数组中的第一个元素或者删除数组中的最后一个元素。

在PHP中内置了array_shif函数来删除数组中的第一个元素,还有array_pop函数用来删除数组中的最后一个元素,下面我们就分别来看一下这两种函数的用法。虽然都是删除元素,这两个函数不同于unset函数和array_splice函数,本篇介绍的两种函数不需要知道数组元素的键值和键名。

array_shif函数-删除数组第一个元素

在PHP中可以通过array_shif函数来对数组元素进行删除第一个的操作,array_shif函数的基本语法格式如下:

array_shift(array)登录后复制

其中需要注意的是:

参数array表示的就是需要进行删除操作的数组,函数运行成功后返回的结果是被删除元素的值,如果函数运行不成功则返回的结果是NULL。如果数组中的键名是数字的话,通过函数删除元素之后键名会重新进行分配,从0开始后面是1以此类推。

下面我们通过示例来看一下array_shift函数的使用,示例如下:

登录后复制

输出结果:

PHP数组操作之怎样删除数组中的首尾元素?

上述示例中,通过array_shift函数删除了数组元素中的第一个元素,下面我们来看一下如果数组中的键名是数字会对输出结果有什么影响,示例如下:

10, 15=>45, 18=>9, 20=>100, 22=>6);
array_shift($num1); //删除数组开头的第一个元素
print_r($num1);
?>登录后复制

输出结果:

PHP数组操作之怎样删除数组中的首尾元素?

上述示例中可以看出,当数组中的键名为数字的时候,通过array_shift函数来删除第一个数组元素的时候会重新从0开始分配键名。

上述中我们了解到了可以通过array_shift函数来删除数组中的第一个元素,那下面我们来看一下怎样通过array_pop函数来删除数组元素中的最后一个元素。

array_pop函数-删除最后一个元素

在PHP中与array_shift函数类似的是,我们可以通过array_pop函数来删除数组元素中的最后一个元素,array_pop函数的基本语法格式如下:

array_pop(array)登录后复制

其中需要注意的是:

参数array就是需要进行删除操作的数组,函数执行成功的话返回的结果就是被删除的元素,如果数组为空或者参数不是数组,那么返回的结果就是NULL。

下面我们通过示例来看一下array_pop函数的使用,示例如下:

登录后复制

输出结果:

PHP数组操作之怎样删除数组中的首尾元素?

上述示例便是通过array_pop函数来将数组中的最后一个元素进行删除,

在通过array_shif函数删除第一个元素的时候我们了解到,当数组的键名是数字的时候,键名会重新分配,那么当我们使用array_pop函数来对数组进行删除最后一个元素操作的时候,如果数组中元素的键名是数字的话,键名会被重新分配吗?

我们我们通过示例来验证一下,看看array_pop函数会不会对数字键名产生影响,示例如下:

10, 15=>45, 18=>9, 20=>100, 22=>6);
array_pop($num1); //删除数组最后的一个元素
print_r($num1);
?>登录后复制

输出结果:

PHP数组操作之怎样删除数组中的首尾元素?

通过上述示例能够发现,通过array_pop函数删除数组中的最后一个元素,并不会像array_shif函数一样遇到数字为键名的时候会重新分配键名。array_pop函数不会重新分配键名。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

怎么进行seata-php开发?开发指南浅析

转载2022-09-26 20:31:30449 + php学习QQ群(点击入群)怎么进行seata-php开发?本篇文章带大家聊聊seata-php开发指南,讲解一些前置知识,希望对大家有所帮助!

PHP数组操作之怎样删除数组中的首尾元素?

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

本篇文章主要是希望能帮助大家参与到 seata/seata-php 的开发中来,并且提供一些前置知识的讲解。

seata/seata-php 目前是基于 hyperf 框架开发的的一个分布式事物组件包,并且兼容 swoole 和 swow 两个协程扩展,希望后面的开发者们也能考虑到兼容这两个协程扩展

前置知识

希望大家在参与 seata/seata-php 开发之前一定一定一定要先了解以下的东西

  • seata

  • hyperf开发文档

  • swoole文档

  • swow

如何启动项目

首先我们需要找个文件目录将代码下载下来

# 根据自己实际情况来创建目录
mkdir ./seata-dev登录后复制

接下来进入到我们的目录内

# 根据自己实际情况来创建目录
cd ./seata-dev登录后复制

我们将 seata/seata-php clone 下来

# 根据自己实际情况来创建目录
git clone git@github.com:seata/seata-php.git登录后复制

接下来根据自己是使用swoole,还是swow分别执行以下的命令来创建框架项目,附带一份 hyperf 项目创建文档 hyperf

# swoole
composer create-project hyperf/hyperf-skeleton

# swow
composer create-project hyperf/swow-skeleton

# 使用 swow 扩展建议使用 hyperf3.0 版本
composer create-project hyperf/swow-skeleton:dev-master登录后复制

接下来是进入到项目内将刚刚 clone 下来的 seata/seata-php 加载到项目内

首先我们需要修改项目内的 composer.json 文件,添加如下内容

{
“require”: {
“hyperf/seata”: “dev-master”
},
“repositories”: {
“seata”: {
“type”: “path”,
“url”: “../seata-php”
}
}
}登录后复制

最后在目录再项目的目录内执行 composer update -o 即可。

并且使用命令 php bin/hyperf.php vendor:publis hyperf/seata 发布一下 seata 配置文件

最后使用 php bin/hyperf.php start 启动项目

最后的最后有兴趣的小伙伴也可以深入了解一下 hyperf 组件包开发相关的文档

  • 组件开发指南

  • ConfigProvider 机制

seata-php 是在何时启动的

最后给大家讲解一下 seata/seata-php 项目是怎么启动的

我们可以看一下 seata/seata-php 项目内 Hyperf\Seata\Listener\InitListener 的代码 link:InitListener

globalTransactionScanner = $globalTransactionScanner;
$this->dataSourceProxy = $dataSourceProxy;
}

public function listen(): array
{
// 我们这里监听了下面两个事件,在 server 启动时候,则开始执行该监听器
return [
MainCoroutineServerStart::class,
MainWorkerStart::class,
];
}

public function process(object $event)
{
// Execute any sql to init the database connection
Db::select('select 1');
// Init TM and RM clients
// 这里则是开始初始化 TM 和 RM 的客户端
$this->globalTransactionScanner->initClients();
}
}登录后复制

最后附带一下 hyperf 的生命周期文档 hyperf-生命周期事件

以上就是怎么进行seata-php开发?开发指南浅析的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/26657/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-09-27 8:46:55
下一篇 2022-09-27 8:48:20

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!