Php 过滤子阵列的最干净、最快速的方法

Php 过滤子阵列的最干净、最快速的方法,php,arrays,Php,Arrays,我在PHP中为循环使用了一个数组和一个,它工作得很好,没有任何问题,但我想提高脚本的性能和速度 这是我的脚本(PHP): $data=[1,2,3,4=>[1,2]]; 对于($i=0;$i[1,2,11,12,13,14,15=>[1,2]];只需花费更多时间才能找到2个有用的元素(10和15),其他元素(1到9和11到14)是无用的,我想在foreach上使用它们之前跳过它们 我不是在寻找一种在现有循环中手动执行的方法,我是在寻找一个内置函数,该函数将针对速度和性能进行优化 非常感谢。获取数

我在PHP中为循环使用了一个数组和一个
,它工作得很好,没有任何问题,但我想提高脚本的性能和速度

这是我的脚本(PHP):

$data=[1,2,3,4=>[1,2]];
对于($i=0;$i
如您所见,它将检查整个数组,以检测数组是否有子数组,我想知道的是-是否有任何方法可以过滤此数组并将过滤后的子数组发送到
foreach
?我的意思是只使用具有子数组的元素,如
$data[4]
,其中包含此子数组:
[1,2]
(我目前正在使用
if(is_array($data[$I]){
中的
is_array
检查它)

如果数组是这样的:
$data=[1,2,3,4,5,6,7,8,9,10=>[1,2,11,12,13,14,15=>[1,2]];
只需花费更多时间才能找到2个有用的元素(10和15),其他元素(1到9和11到14)是无用的,我想在
foreach
上使用它们之前跳过它们

我不是在寻找一种在现有循环中手动执行的方法,我是在寻找一个内置函数,该函数将针对速度和性能进行优化


非常感谢。

获取数组中的所有元素:

$data = array_filter($data, "is_array");
$data = array_filter($data, fn($e) => !is_array($e));
获取不是数组的所有元素:

$data = array_filter($data, "is_array");
$data = array_filter($data, fn($e) => !is_array($e));

array\u filter($data,“is\u array”);
?“我想在使用它们之前跳过它们”和“如果你想说我可以使用其他变量并用相同的foreach代码或类似的东西保存在其他变量上有子数组的数组,很遗憾我不需要它”是不兼容的需求。您要么只提取所需的元素,要么在每次需要使用这些元素时迭代整个数组。@El_Vanja我的意思是使用筛选函数或PHP已有的某些函数,其工作速度与其他默认PHP函数类似,如trim()@FelippeDuarte非常感谢。这不是我想要的。旁白:在每次迭代时计算数组是浪费的。提前计算。或者只使用foreach进行数组循环。