有人可以帮助我explode()
功能。我正在使用$_POST[]
从我的网页上的表单中读取值,其中包含3个值:$user_id[$nro]".": "."$fname[$nro]".","."$sname[$nro]
。
现在我试图爆炸$_POST()
值,但我无法让它工作。我试过两种不同的方式,但没有运气......
第一种方式:
$uservalue = array();
$uservalue = $_POST['userlist'];
foreach($uservalue as $line => $content) {
$uservalue[$line] = explode(',',$content);
}
print_r($uservalue);
新$uservalue[]
中没有值。
第二种方式:
$uservalue = $_POST['userlist'];
$uservalue = explode(":", $uservalue);
$uservalue = explode(",", $uservalue);
Warning: explode() expects parameter 2 to be string, array given in ...
请有人帮助我并告诉他们如何正确地做到这一点?
感谢。
答案 0 :(得分:2)
爆炸根据分隔符拆分字符串,并将其放入数组中。
在你的第一个例子中,$ uservalue = array();没有必要,因为假设$ _POST ['userlist']是一个字符串,而不是一个数组。
当您向该页面发布内容时,是否可以发布此代码的结果? (即只是把它放在顶部!你可能想要查看源代码来复制和粘贴它,因为它在渲染页面上看起来不太好)
<?php
print_r($_POST);
?>
好的,看看你在做什么(不知道为什么你把它全部放在一个变量中,而不是单独的那个btw!)你可以这样做:
$userlist = $_POST['userlist'];
$explode_on_colon = explode(":",$userlist);
$uservalue[0] = $explode_on_colon[0];
$explode_on_comma = explode(",", $explode_on_colon)
$uservalue[1] = $explode_on_comma[0];
$uservalue[2] = $explode_on_comma[1];
我没有尝试过,但你明白了。不幸的是,你不能在PHP中explode(",", $explode_on_colon)[0]
,因此是临时变量。
答案 1 :(得分:2)
你想要达到什么目的?另外,$ _POST包含什么?
如果你想要一个数组中的用户,你的答案就是这样:(不需要循环)
$userList = explode(',', $_POST['userlist']);
答案 2 :(得分:2)
首先,当您回显页面上的表单值时,您会有多余的引号。你现在拥有的是(我假设):
echo "$user_id[$nro]".": "."$fname[$nro]".","."$sname[$nro]";
虽然更合适的是:
echo $user_id[$nro].": ".$fname[$nro].",".$sname[$nro];
即,您不需要双引号变量。
其次,我假设您正在尝试将$_POST
变量拆分为其三个组件。您的方法可能存在缺陷,因为您可以将这些值直接保存在三个不同的表单元素中:
<input type="hidden" name="user_id" value="<?php echo $user_id[$nro]; ?>" />
<input type="hidden" name="fname" value="<?php echo $fname[$nro]; ?>" />
<input type="hidden" name="sname" value="<?php echo $sname[$nro]; ?>" />
然后您可以单独访问这些变量。
但是,要回答你的问题,你可以像这样拆分你的字符串:
// Added for example, your value comes from $_POST
$str = "1: kevin,costner";
list($user_id, $rest) = explode(": ", $str);
// $user_id is a string, contains "1"
// $rest is a string, contains "kevin,costner"
// Explode the $rest again
list($fname, $sname) = explode(",", $rest);
// $fname is a string, contains "kevin"
// $sname is a string, contains "costner"
现在您有三个不同的变量来保存您的值。
此外,本网站的性质是接受您认为有帮助的答案,所以如果您在这里找到帮助,请这样做!
答案 3 :(得分:0)
发生在我身上: 我在一条线上设置但没有工作
$aFromPOST = explode (',',$_POST['cattodel']);
// $_POST['cattodel'] has this values s,d,e,i
我不得不把它放在两条分开的线上并且工作......不知道为什么但是它就像这样工作......
$sPOST= $_POST['cattodel']; // $_POST['cattodel'] has this values s,d,e,i
$aFromPOST = explode (',',$sPOST);