我有一个字符串,可能包含两种类型的值,
//Example 1
$string = 'Order';
//Example 2
$string = 'Order_Invoice';
我想确定字符串是否包含符号_
并相应地拆分字符串,如果我的字符串具有示例1中的值,即。 Order
没有_
,那么它应该创建另一个变量并在其中分配值。像下面的例子。
$a = 'Order';
对于示例2,如果我的字符串包含_
,那么它应该创建两个变量并将它们存储在以下示例中。
$a = 'Order';
$b = 'Invoice';
我该怎么做?
答案 0 :(得分:5)
使用explode在_
处拆分$a = explode( '_', $string );
//$a[0] = 'Order'
//$a[1] = 'Invoice'
如果未找到_
,则只会设置$a[0]
答案 1 :(得分:5)
你可以试试这个:
<?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'
?>
答案 2 :(得分:2)
查看explode
$ split_array = explode('_',$ string);
答案 3 :(得分:1)
PHP有一个split()
函数,但它可能不适合你。
最简单的解决方案是explode()
功能。使用方法如下:
$result = explode('_', $input);
并且您将$result
作为数组,每个单词的元素由下划线分隔。
如果你真的希望它在单独的变量而不是数组中,那么你可以使用list()
来定义你想要的变量:
list($a, $b) = explode('_', $input);
但说实话,数组方法更简单,更好。
如果你需要更复杂的分裂,那么还有preg_split()
但是如果你不知道你在做什么,这可能有点毛茸茸,所以我会给你留下{{1}现在。
答案 4 :(得分:0)
如果我遵循您的逻辑,这应该有效,使用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';
}
答案 5 :(得分:0)
您可以使用以下语句
$a = explode('_', $_GET['string'] );
答案 6 :(得分:0)
$string = "Order_Invoice";
$array = explode("_", $string);
echo $array[0]; //Order
echo $array[1]; //Invoice