Php 如何在数组索引中正确使用preg_match?
代码: 输出应为:Php 如何在数组索引中正确使用preg_match?,php,regex,Php,Regex,代码: 输出应为: $array[ ( preg_match( '/pdf-\d/', $key ) ? true : false ) + '[' + ( preg_match( '/pdf-total-\d/', $key ) ? true : false ) + ']' ] 实际上,您使用的是三元运算符: $array['pdf-1[pdf-total-1]'] 这将返回true或false,但不会返回pdf-1或[pdf-total-1] 也许你想要更多这样的东西: preg_matc
$array[ ( preg_match( '/pdf-\d/', $key ) ? true : false ) + '[' + ( preg_match( '/pdf-total-\d/', $key ) ? true : false ) + ']' ]
实际上,您使用的是三元运算符:
$array['pdf-1[pdf-total-1]']
这将返回true
或false
,但不会返回pdf-1
或[pdf-total-1]
也许你想要更多这样的东西:
preg_match( '/pdf-\d/', $key ) ? true : false
但是它在任何情况下都没有多大意义,因为
$key
匹配第一个模式或它匹配第二个模式你没有帮自己任何忙,而是把所有的模式都塞进一行。preg_match('/pdf-\d/',$key)
将返回true或false,你不需要?true:false
,如果您使用preg_match('/pdf-(\d)/',$key)
这将返回一个包含(\d)found的数组感谢回复人员,但我自己解决了这个问题。我只是在jquery中添加了一个隐藏的输入值,并在php中匹配它。非常感谢。@nicearma:噢preg_match
在没有匹配项时返回0,在找到匹配项时返回1,在出现错误时返回false。@nicearma:即使使用捕获组preg_match
也不会返回匹配的内容!
$array[
( preg_match( '/pdf-\d/', $key ) ? $key: false ) .
'[' . ( preg_match( '/pdf-total-\d/', $key ) ? $key: false ) . ']'
]