如何在PHP中将此字符串分成两部分?
我具有可以可能容纳两个类型的值的字符串,如何在PHP中将此字符串分成两部分?
//Example 1
$string = 'Order';
//Example 2
$string = 'Order_Invoice';
欲确定该字符串是否包含符号_
并相应地分割字符串,如果我的字符串具有该值作为实施例1中,即。 Order
没有_
那么它应该创建另一个变量并赋值。就像下面的例子。
$a = 'Order';
而且,例如2,如果我的字符串包含一个_
,那么它应该创建两个变量,并将它们存储在下面的例子。
$a = 'Order';
$b = 'Invoice';
我该怎么做?
你可以试试这个:
<?php
$string = 'Order';
$array = explode('_', $string);
echo $array[0]; // echos 'Order'
$string2 = 'Order_Invoice';
$array = explode('_', $string2);
echo $array[0]; // echos 'Order'
echo $array[1]; // echos 'Invoice'
?>
如果我按照你的逻辑,这应该工作,使用strpos()
看是否_
存在的字符串:
$a = 'Order';
$b = 'Whatever';
if(strpos($string, '_') !== false)
{
$b = 'Invoice';
}
$string = 'Order_Invoice';
if(strpos($string, '_'))
{
list($a, $b) = explode($string, '_');
}
else
{
$a = $string;
$b = 'Something else';
}
'$ strpos'?我经常做这种tpyo [原文]。 –
已编辑。在你评论之前我注意到了。现在一切安好吗? – Bojangles
我没有downvote。对简单的错字输入进行降级只是错误的。 –
使用爆炸的_
$a = explode('_', $string);
//$a[0] = 'Order'
//$a[1] = 'Invoice'
分裂如果没有_
被发现仅$a[0]
将设置
PHP有split()
功能,但它可能不是你的最佳选择。
最简单的解决方案是explode()
函数。如下使用它:
$result = explode('_', $input);
,你会得到$result
作为一个数组,与由下划线分隔每个单词的元素。
如果你真的希望它是在不同的变量,而不是一个数组,那么你可以使用list()
来定义你想要的变量:
list($a, $b) = explode('_', $input);
但说实话,阵列方法比较简单,更好。
如果您需要更复杂的拆分,也有preg_split()
,但如果您不知道自己在做什么,可能会有点毛病,所以我现在只给你explode()
。
谢谢你这是非常有帮助的。 :) – Salman
如下
$a = explode('_', $_GET['string']);
$string = "Order_Invoice";
$array = explode("_", $string);
echo $array[0]; //Order
echo $array[1]; //Invoice
您是否尝试过一个简单的搜索 “分裂” 的PHP文件中您可以使用此声明? – 2011-10-03 20:54:52
['explode()'](http://php.net/explode)将字符串转换为数组。 – salathe