我使用这个函数来搜索数组:
function search_array ( $array, $term )
{
foreach ( $array as $key => $value )
if ( stipos( $value, $term ) !== false )
$val = str_replace('"',"",preg_replace("/[a-zA-Z0-9]=/","",$array[$key]));
if (isset($val)) return $val;
return false;
}
这很好用,但我需要做的限制性更强。
$a = (search_array($l, "7=")); echo "Device ID: $a";
这行得通,但我只想要一个匹配而7=
不是它当前正在做的匹配。知道我如何只匹配我输入的内容而不尝试扩展它吗?17=
27=
抱歉,我应该包含我在 PHP4 中使用的这个函数。
function stipos($haystack, $needle){
return strpos($haystack, stristr( $haystack, $needle ));
}
条目类似于 ;
1="设备"、3="用户"、7="ID123456"、27="节点"等
如果我正在搜索 7=,我希望返回的结果是 ID123456
目前我得到 2Node 被返回,它取自 27="Node"
这是我如何使用它的一个例子:
$line = "1=\"Device\",3=\"User\",7=\"ID123456\",27=\"Node\"";
$q = explode(",",str_replace('"','',$line));
$p = (search_array($q, "7=")); echo "ID : ".$p;
我希望返回 7=,但我得到 27= 的值和最初的 2,导致
ID : 2Node
不是
ID : ID123456