如何在PHP中将此字符串拆分为两个?

时间:2011-10-03 20:52:58

标签: php string

我有一个字符串,可能包含两种类型的值,

//Example 1
$string = 'Order';
//Example 2
$string = 'Order_Invoice';

我想确定字符串是否包含符号_并相应地拆分字符串,如果我的字符串具有示例1中的值,即。 Order没有_,那么它应该创建另一个变量并在其中分配值。像下面的例子。

$a = 'Order';

对于示例2,如果我的字符串包含_,那么它应该创建两个变量并将它们存储在以下示例中。

$a = 'Order';
$b = 'Invoice';

我该怎么做?

7 个答案:

答案 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';
}

使用explode()list()的更广泛的答案:

$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