preg_match won't match elements
| From: | Larry Brown | Date: | Tue, 29 Jan 2002 14:28:11 +0000 |
| Subject: | preg_match won't match elements | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-82567@lists.php.net to get a copy of this message | ||
I have two arrays and need to perform the array_diff function. However,
since it is broken in 4.x, I'm trying to get the same outcome. Due to the
nature of my call to this function the selected is always going to be a
number of items selected from the connections. For some reason the outcome
does not work sometimes. The following is the code I set up. Please excuse
any poor abilities on my part for constructing the code efficiently (I'm
pretty new at this stuff)....
function array_dif($slctd, $connctns)
{
for($i = 0; $i < count($slctd); $i++)
{
if(preg_match("/\b$slctd[$i]\b/", "$connctns[$i]"))
{
unset($connctns[$i]);
unset($slctd[$i]);
echo "match0";
}
for($j = 1 ; $j < count($connctns); $j++)
{
if(preg_match("/\b$slctd[$i]\b/", "$connctns[$j]"))
{
unset($connctns[$j]);
unset($slctd[$i]);
echo "match[$i]";
}
}
}
$k = array_merge($connctns, $selected);
return $k;
}
$selected = preg_split("/\,/", $pltoload);
echo "<TH>Select:<TH>";
echo '<BR><select multiple name="plutoload[]">';
for ($i = 0; $i < count($selected); $i++)
{
echo '<option selected value="', "$selected[$i]",
'">', "$selected[$i]";
$trimselect = array();
array_push($trimselect, (trim($selected[$i])));
}
$unselect = array_dif($trimselect, $connections);
for ($s = 0; $s < count($unselect); $s++)
{
echo '<option value="conn ', "$unselect[$s]", '">',
"$unselect[$s]";
}
echo "</select>";
I trimmed the selected value of white spaces and left the connection
elements alone. Note the value of $pltoload will be connection, connection,
connection or connection,connection,connection. If anyone can tell why some
matches don't work when I can view the element in each array and they are
identical in the exception of the key value within their respective array.
Larry
PS. HTML-Kit kicks butt!