2011-10-03 238 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