PHP:拆分逗号分隔&特殊符号字符串到数组中

时间:2015-02-03 06:04:23

标签: php arrays string codeigniter explode

我已经看过如何使用

将逗号分隔的字符串拆分为PHP中的数组
$myArray = explode(',', $myString);

但是当一些逗号分隔值后面有一个特殊符号时,如何找到特殊符号(@),然后启动一个新的内部数组。

我有一个像这样的字符串

Treatment1,2,500,0%,1000,note1, @ Treatment2,1,2000,250 INR,1750,note2,

然后我需要一个像这样的数组

Array
(

        [0] => Array
            (
                [treatment] => Treatment1
                [quantity] => 2
                [cost] => 500
                [discount] => 0%
                [discount_type] => INR
                [total] => 1000
                [note] => note1 
            )

        [1] => Array
            (
                [treatment] => Treatment2
                [quantity] => 1
                [cost] => 2000
                [discount] => 250
                [discount_type] => INR
                [total] => 1750
                [note] => note2 
            )
)

任何帮助将不胜感激

2 个答案:

答案 0 :(得分:2)

试试这个 -

str = "your string";
$arr = explode('@', $str);
$newArray = array();
foreach ($arr as $val) {
   $temp = explode(',', $val);
   $newTemp['treatment'] = $temp[0];
   $newTemp['quantity'] = $temp[1];
   $newTemp['cost'] = $temp[2];
   $newTemp['discount'] = $temp[3];
   $newTemp['discount_type'] = "INR";
   $newTemp['total'] = $temp[4];
   $newTemp['note'] = $temp[5];
   $newArray[] = $newTemp;
   $temp = array();
}
var_dump($newArray);

答案 1 :(得分:1)

使用此代码

$str = "Treatment1,2,500,0%,1000,note1, @ Treatment2,1,2000,250 INR,1750,note2,";

$arr1 = explode("@",$str);

//print_r($arr1);

$finalArr = array();

foreach($arr1 as $val)
{
    $finalArr[] = explode(",",$val);
}

print_r($finalArr);