我已经为这个问题绞尽脑汁好几个星期了,却始终没有找到或创造出正确的答案:
假设我有一个包含以下元素的数组:',1,'
',2,'
',1,2,'
',1,3,'
',1,2,3,'
通过使用PHP的preg_grep函数,我想获得包含元素1或/和2(包括或)的所有可能的组合,但只有1和2,所以基本上在这种情况下我想获得的元素是:
',1,'
',2,'
',1,2,'
任何想法?
谢谢! !
编辑:根据anubhava的要求,我将使用的数据集如下:
, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13602, 13603, 13604, 13605, 13606,
, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13601, 13602, 13604, 13605, 13606,
, 13598, 13599, 13600, 13601, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606,
, 13599, 13600, 13602, 13603, 13604, 13605, 13606,
, 13598, 13600, 13601, 13602, 13604, 13605, 13606,
, 13598, 13599, 13600, 13602, 13604, 13605, 13606,
, 13598, 13600, 13601, 13603, 13604, 13605, 13606,
, 13599, 13600, 13601, 13602, 13604, 13605, 13606,
, 13599, 13601, 13602, 13603, 13604, 13605, 13606,
, 13599, 13600, 13601, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13602, 13603, 13604, 13606,
, 13598, 13599, 13600, 13601, 13604, 13605, 13606,
, 13599, 13600, 13601, 13602, 13603, 13604, 13605,
, 13598, 13600, 13602, 13603, 13604, 13605, 13606,
, 13599, 13600, 13601, 13602, 13603, 13604, 13606,
, 13600, 13601, 13602, 13603, 13604, 13605, 13606,
, 13598, 13599, 13603, 13604, 13605, 13606,
, 13599, 13601, 13602, 13603, 13604, 13605,
, 13600, 13601, 13602, 13603, 13604, 13606,
, 13599, 13601, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13604, 13605, 13606,
, 13599, 13601, 13602, 13604, 13605, 13606,
, 13600, 13602, 13603, 13604, 13605, 13606,
, 13598, 13599, 13600, 13602, 13604, 13605,
, 13598, 13599, 13600, 13602, 13604, 13606,
, 13598, 13600, 13602, 13603, 13604, 13606,
, 13598, 13601, 13603, 13604, 13605, 13606,
例如,我正在查找所有我称之为
的"子节点", 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606,
所以基本上所有包含一个或多个数字的列表:
13598, 13599, 13600, 13601, 13602, 13603, 13604, 13606
只有这些数字
您可以在preg_grep
:
/^,((?:13598|13599|13600|13601|13602|13603|13604|13606),)+$/
<<h3>在线演示/h3>