2011-10-03 240 views
-1

我具有可以可能容纳两个类型的值的字符串,如何在PHP中将此字符串分成两部分?

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

欲确定该字符串是否包含符号_并相应地分割字符串,如果我的字符串具有该值作为实施例1中,即。 Order没有_那么它应该创建另一个变量并赋值。就像下面的例子。

$a = 'Order'; 

而且,例如2,如果我的字符串包含一个_,那么它应该创建两个变量,并将它们存储在下面的例子。

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

我该怎么做?

+1

您是否尝试过一个简单的搜索 “分裂” 的PHP文件中您可以使用此声明? – 2011-10-03 20:54:52

+1

['explode()'](http://php.net/explode)将字符串转换为数组。 – salathe

回答

4

你可以试试这个:

<?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' 
?> 
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'; 
} 
+0

'$ strpos'?我经常做这种tpyo [原文]。 –

+0

已编辑。在你评论之前我注意到了。现在一切安好吗? – Bojangles

+0

我没有downvote。对简单的错字输入进行降级只是错误的。 –

2

看看explode

$ split_array = explode('_',$ string);

5

使用爆炸的_

$a = explode('_', $string); 

//$a[0] = 'Order' 
//$a[1] = 'Invoice' 

分裂如果没有_被发现仅$a[0]将设置

1

PHP有split()功能,但它可能不是你的最佳选择。

最简单的解决方案是explode()函数。如下使用它:

$result = explode('_', $input); 

,你会得到$result作为一个数组,与由下划线分隔每个单词的元素。

如果你真的希望它是在不同的变量,而不是一个数组,那么你可以使用list()来定义你想要的变量:

list($a, $b) = explode('_', $input); 

但说实话,阵列方法比较简单,更好。

如果您需要更复杂的拆分,也有preg_split(),但如果您不知道自己在做什么,可能会有点毛病,所以我现在只给你explode()

+0

谢谢你这是非常有帮助的。 :) – Salman

0

如下

$a = explode('_', $_GET['string']);

0
$string = "Order_Invoice"; 

$array = explode("_", $string); 

echo $array[0]; //Order 
echo $array[1]; //Invoice