有没有一种方法可以直接探索数组中的数组而无需先经过第一个?

时间:2019-03-17 23:23:21

标签: php arrays preg-match

我正在使用preg_match_all()获取URL参数的匹配项。问题是匹配函数将数组发回给我。因此,很难使用foreach函数(例如,用默认参数替换参数)来探索它。

有没有一种方法可以直接探查一个数组数组并发回第二个数组(而不是第一个)的值,而不会传递第一个数组?

我给你举了一个简单的例子来说明我的问题:

$var = "abababa";

preg_match_all("#(a)#", $var, $matches);

$args = array_slice ($matches, 1);

var_dump($args) 

arg还给我:

array (size=1)
  0 => 
    array (size=5)
      0 => string 'a' (length=1)
      1 => string 'a' (length=1)
      2 => string 'a' (length=1)
      3 => string 'a' (length=1)

我希望它能返回

   array (size=5)
      0 => string 'a' (length=1)
      1 => string 'a' (length=1)
      2 => string 'a' (length=1)
      3 => string 'a' (length=1)

因此可以用othes替换args元素(例如默认元素)。

谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以简单地执行以下操作:

$var = "abababa";

preg_match_all("#(a)#", $var, $matches);

$args = array_slice ($matches[0], 1); // notice we are accessing the first element of $matches

var_dump($args);

这应该产生您想要的输出。