我得到了类似的数组:
$array = array(
3A32,
4565,
7890,
0012,
A324,
9002,
3200,
345A,
0436
);
然后,我需要找出哪些元素具有两个数字。数字的值可以更改。
如果值是:
$n1 = 0;
$n2 = 3;
对于该搜索,preg_match()
应该返回(3200,0436)
如果值是:
$n1 = 0;
$n2 = 0;
[preg_match()
应该返回(0012,3200,9002)
任何想法?
谢谢。
很简单,
1。创建一个函数,该函数接受初始数组以及数组形式的那些搜索数字(以便您可以搜索任何数字和任意长度的数字)。
2。现在遍历初始数组,并从arary_diff()
到search numbers array
遍历initial array
。如果即将到来的数组计数为0
,则表示找到匹配项。
3。将此匹配分配给在函数本身下声明的新数组。
4。在函数末尾返回此数组。
function checkValues($array,$numbers=array()){
$finalArray = [];
if(!empty($numbers)){
foreach($array as $arr){
$splitArr = str_split($arr);
if(count(array_diff($numbers,$splitArr)) == 0){
$finalArray[] = $arr;
}
}
}
return $finalArray;
}
print_r(checkValues($array, array($n1,$n2)));