【问题标题】:Is there a way to explore directly an array in an array without passing by the first?有没有办法直接探索数组中的数组而不经过第一个?
【发布时间】:2019-03-17 23:23:21
【问题描述】:

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

有没有办法直接探索一个数组并返回第二个数组的值,而不是第一个,而不经过第一个?

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

$var = "abababa";

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

$args = array_slice ($matches, 1);

var_dump($args) 

参数返回我:

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)

因此能够将 args 元素替换为其他元素(例如默认元素)。

如果你能帮助我,谢谢。

【问题讨论】:

  • 在 PHP 7 中你可以简单地做到$args = array_slice ($matches,1)[0];
  • 谢谢 :) 我还是 stackoverflow 的新手。
  • @Anacarde 没问题,将问题关闭并从“未回答”列表中删除是件好事。作为奖励,您将获得 +2 声望! :-)

标签: php arrays preg-match


【解决方案1】:

你可以这样做:

$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);

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

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多