我有一个脚本,我正在为自动化任务工作,所以我并不担心干净的代码,因为它只会被使用一次。
脚本读取平面文件并将信息存储到一个数组中,该数组稍后将用于从数据库中读取内容。
但是,我只想要数字数据,所以我使用了preg_replace()和逗号。我的代码如下。
使用循环从平面文件中的值读取它们。
$store = array();
$store[] = 111;
$store[] = 2;
$store[] = 4;
$store[] = 55;
$store[] = 66;
$store[] = 'Kilory';
$store[] = 9090;
$theList[$i] = preg_replace( '/[^0-9,]/u', '', implode( ',', $store ) );
unset( $store );
这给我的结果是0,2,4,55,66,9090。如果我试图在mysql IN()语句中使用该信息,那么由于彼此旁边有两个逗号,它会向我吐出一个错误。删除彼此重复的最佳方法是什么?
谢谢!
答案 0 :(得分:3)
重复的逗号,包括您可以使用$string = trim(preg_replace('#,{2,}#', ',', $string), ',');
删除的标题和尾随逗号。
答案 1 :(得分:1)
PHP为此提供了一个过滤功能:
$store = array();
$store[] = 111;
$store[] = 2;
$store[] = 4;
$store[] = 55;
$store[] = 66;
$store[] = 'Kilory';
$store[] = 9090;
$theList[$i] = implode(',', array_filter($store, 'is_numeric'));
unset($store);
答案 2 :(得分:0)
循环遍历store[]
值时,使用is_numeric()
函数检查值是否为数字。如果是,请添加逗号,如果不是,请不要。