如何从逗号分隔的字符串变量中删除一个值?
问题描述:
I want to remove one value from comma separated string variable Eg hdnListCL ="'ABC','PQR','XYZ'" i want to remove any one of them, how i can do this without converting this into array? html code
<input type="hidden" name="hdnlistCL" id="hdnlistCL"/>
<table>
<tr>
<td>
<div id="ProjList"><?php print $strLocName; ?></div><br/>
<input type="text" name="txtCommonLocation" id="txtCommonLocation" size="40" value=""/>
<img src="images/plus.gif" title="Click Here" onclick="AddNewLocation()" style='cursor:pointer;' align="right"/> </td>
</tr>
</table>
javascript
<script type="text/javascript" src="../scripts/jquery.min.js"></script>
<script type="text/javascript">
function AddNewLocation()
{
var listCL = "";
this.strProjName;
if ( typeof strProjName == 'undefined' ) {
strProjName = '';
}
var newLoc = document.getElementById('txtCommonLocation').value;
document.getElementById('txtCommonLocation').value = "";
if(document.getElementById('hdnlistCL').value == '')
{
document.getElementById('hdnlistCL').value =newLoc;
}
else
{
document.getElementById('hdnlistCL').value += ","+newLoc;
}
listCL = newLoc;
if(listCL != '')
{
strProjName = strProjName + '<div id="'+listCL+'">'+listCL+'<div class="close" onclick="removeLocation(\''+listCL+'\')"></div></div>';
}
// alert(strProjName);
$('#ProjList').html(strProjName);
}
function removeLocation(pLocation)
{
var hdnListLocation = document.getElementById('hdnlistCL').value;
if(window.confirm("Are you sure you want to delete this?"))
{
url = 'test_st.php';
$.post(
url,
{"act":"Delete","DelLocation":pLocation,"hdnListLocation": hdnListLocation},
function(responseText){
alert(responseText);
return false;
window.location="test_st.php";
},
"html"
);
return false;
}
}
</script>
php code
<?php
if(isset($_POST['act']))
$act = $_POST['act'];
if($act == "Delete")
{
$arrhdnListLocation = explode(",", $_POST['hdnListLocation']);
if(in_array($_POST['DelLocation'],$arrhdnListLocation))
{
print("I want to remove'".$_POST['DelLocation']."' from hdnlistCL");
exit();
}
else
{
print("No");
exit();
}
}
?>
when i click close button i want to remove that location from hdnlistCL. how i can do this? value of hdnListCL is ABC,PQR,XYZ i want to remove PQR from this
答
Please Try this
$hdnListCL ="'ABC','PQR','XYZ'";
$hdnListCL=explode(',',$hdnListCL);
$index = array_search('PQR',$hdnListCL);
if($index !== false){
unset($hdnListCL[$index]);
}
$hdnListCL=implode(',',$hdnListCL);
print_r($hdnListCL);
答
$string = "'ABC','PQR','XYZ'";
$remove = "'PQR'";
// you can use array_diff method to remove specific array item
$result = array_diff(str_getcsv($string), array($remove))
echo implode(',', $result); // output is "'ABC','XYZ'"
php fiddle example: http://phpfiddle.org/main/code/v260-p3cf