相关疑难解决方法(0)

在array_filter()之后,如何将键重置为从0开始的数字顺序

我只是使用array_filter从数组中删除只有值''的条目,现在我想根据从0开始的占位符对它应用某些转换,但不幸的是它仍然保留原始索引.我找了一会儿,看不到任何东西,也许我只是错过了明显的,但我的问题是......

如何轻松地重置数组的索引从0开始并按顺序在新数组中,而不是保留旧索引?

php arrays filter reindex

93
推荐指数
4
解决办法
4万
查看次数

如何使用explode-implode函数将字符串拆分为两个数组?

假设我有以下字符串:

5+6-5*3/2+4
Run Code Online (Sandbox Code Playgroud)

我需要将字符串拆分为两个数组:第一个数组包含整数,第二个数组包含字符串中的运算符.

我已经使用过这个preg_split()功能了

preg_split("/[^0-9]+/", $str)
Run Code Online (Sandbox Code Playgroud)

并已成功完成任务,但我被告知要使用explode()implode()功能.我尝试使用它们,但现在我对如何使用它们获得所需的数组感到困惑.

php regex arrays split input

5
推荐指数
1
解决办法
350
查看次数

Splatpacking 与 array_values() 使用数字键重新索引数组

从 PHP7.4 开始,有一种新的技术可以使用数字键重新索引数组。

我会称它为“数组重新打包”或者一些有趣的东西,比如“ splatpacking ”。简单的过程包括使用 splat 运算符 ( ...) —— 又名“扩展运算符”——来解包一个数组,然后通过“对称数组解构”用第一级元素填充一个新数组。

比较代码:(演示

$array = [2 => 4, 5 => 3, "3" => null, -10.9 => 'foo'];

var_export(array_values($array));
var_export([...$array]);
Run Code Online (Sandbox Code Playgroud)

两者都会输出:

array (
  0 => 4,
  1 => 3,
  2 => NULL,
  3 => 'foo',
)
Run Code Online (Sandbox Code Playgroud)

同样,splatpacking 技术严格限于带有数字键的数组,因为 splat 运算符会阻塞其他任何东西,并且只有 PHP7.4 及更高版本才能将解压缩的值直接写入数组。

由于这两种技术在排位赛中提供相同的输出,我什么时候应该使用一种而不是另一种?

请注意,这不是关于如何重新索引键,而是array_values()与新可用技术的比较。

这不同于:

php arrays argument-unpacking reindex php-7.4

-6
推荐指数
1
解决办法
438
查看次数

标签 统计

arrays ×3

php ×3

reindex ×2

argument-unpacking ×1

filter ×1

input ×1

php-7.4 ×1

regex ×1

split ×1