有没有办法直接探索数组中的数组而不经过第一个?
Is there a way to explore directly an array in an array without passing by the first?
我正在使用 preg_match_all() 来匹配我的 url 的参数。问题是 matches 函数发回了一个数组数组。因此很难用 foreach 函数探索它(例如将参数替换为默认参数)。
有没有办法直接探索一个数组的数组,并在不经过第一个数组的情况下发回第二个数组的值,而不是第一个数组的值?
我给你举了一个我的问题的简单例子:
$var = "abababa";
preg_match_all("#(a)#", $var, $matches);
$args = array_slice ($matches, 1);
var_dump($args)
arg return 我:
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)
我希望它可以return只是
array (size=5)
0 => string 'a' (length=1)
1 => string 'a' (length=1)
2 => string 'a' (length=1)
3 => string 'a' (length=1)
因此能够用其他元素替换 args 元素(例如默认元素)。
如果你能帮助我,谢谢。
您可以简单地这样做:
$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);
这应该会产生您想要的输出。
我正在使用 preg_match_all() 来匹配我的 url 的参数。问题是 matches 函数发回了一个数组数组。因此很难用 foreach 函数探索它(例如将参数替换为默认参数)。
有没有办法直接探索一个数组的数组,并在不经过第一个数组的情况下发回第二个数组的值,而不是第一个数组的值?
我给你举了一个我的问题的简单例子:
$var = "abababa";
preg_match_all("#(a)#", $var, $matches);
$args = array_slice ($matches, 1);
var_dump($args)
arg return 我:
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)
我希望它可以return只是
array (size=5)
0 => string 'a' (length=1)
1 => string 'a' (length=1)
2 => string 'a' (length=1)
3 => string 'a' (length=1)
因此能够用其他元素替换 args 元素(例如默认元素)。
如果你能帮助我,谢谢。
您可以简单地这样做:
$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);
这应该会产生您想要的输出。