匹配精确数字(

编程入门 行业动态 更新时间:2024-10-23 22:31:51
本文介绍了匹配精确数字(_M)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用

$regex = '/'.implode('|', 10).'/i'; preg_match($regex, $ids)

在ID列表($ID)中查找数字10。但是,如果ID列表如下所示:

$ids = array(10, 110, 1010);

会把他们全部带回来吗?我如何才能使它找到我要查找的确切数字,而不仅仅是找到包含我要查找的数字的数字?

谢谢。

编辑:

我在上面犯了一个错误。ID列表实际上是逗号分隔值的字符串。例如:

$ids = "10,1010,101";

很难解释这背后的整个想法过程,但这是我的完整代码:

<?php $file = fopen('allprods.csv', 'r'); $id = array($_GET['id']); $id = array_map('preg_quote', $id); $regex = '/'.implode('|', $id).'/i'; $skus = array(); while (($line = fgetcsv($file)) !== FALSE) { list($ids, $sku) = $line; if(preg_match($regex, $ids)) { $skus[] = $sku; } } $count = count($skus); $i = 1; echo $category_id; foreach ($skus as $sku){ echo $sku; if($i != $count) { echo "`"; } $i++; }

我实际上是在遍历一个CSV,它有一个ID列(有些行在该列中有多个ID,以逗号开头)和一个sku列。更多信息here

因此,我需要代码来检查特定ID的ID字符串,例如10,然后将适当的SKU添加到sku数组中。

我敢肯定这段代码是一团糟,所以请原谅我,让我把PHP分解成碎片!

编辑:现在问题已解决!正如答案中所提到的,我使用的是inarray值。首先,我分解了逗号分隔的字符串。代码如下:

$skus = array(); while (($line = fgetcsv($file)) !== FALSE) { list($ids, $sku) = $line; $cats = explode(',',$ids); if (in_array($_GET['id'], $cats)) { $skus[] = $sku; } }

感谢大家的帮助。

推荐答案

不要为此使用正则表达式。使用in_array()

if( in_array(10, $ids) ) { // do something } else { // not found }

更多推荐

匹配精确数字(

本文发布于:2023-10-25 13:41:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1527113.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:精确   数字

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!