使用PHP中的索引值来分解字符串值

时间:2014-05-21 06:53:01

标签: php explode

我有一个字符串,它已被行和列连接起来,并使用特殊字符分隔。以下是我的代码:

$strMaterialDetails = '13-"9"Strawberry%*DEALER%*15%*25%*375%*7.500%*7.500%*28.13%*2.000%*2.000%*6.94@^$14-"9" Yellow white Acrylic Long Pile Ext Roller Set%*DISTRIBUTOR%*45%*75%*3375%*2.500%*2.500%*84.38%*5.000%*5.000%*164.53@^$';

$pairs = explode('@^$', $strMaterialDetails);

foreach ($pairs as $pair) {
    list($product, $store, $qty, $unit, $total_price, $discount, $discount_percen, $discount_value, $tax, $tax_percen, $tax_val) = explode('%*', $pair);

    echo $store;
}

工作正常我必须将值插入数据库,如果我打印$store它将打印DEALERDISTRIBUTOR

我想分开这个,我不知道该怎么办。此处输入的字符串未知。

请提出任何建议。

2 个答案:

答案 0 :(得分:1)

您的DEALERDISTRIBUTOR未存储在$store

实际上你正在循环中打印$store而没有任何空间来说明打印结合的原因。

原来在第一个循环$store=DEALER然后你回应它。并且在第二个循环$store=DISTRIBUTOR中,所以它只是混乱。

你可以有两个解决方案来检查它。

解决方案:1 在回复$store之后打印一个新行

foreach ($pairs as $pair) 
{
       list($product,$store,$qty,$unit,$total_price,$discount,$discount_percen,$discount_value,$tax,$tax_percen,$tax_val) = explode('%*#', $pair);

        echo $store;
        echo "<br/>";

 }

解决方案:2 在数组中保存$store

foreach ($pairs as $pair) 
    {
           list($product,$store,$qty,$unit,$total_price,$discount,$discount_percen,$discount_value,$tax,$tax_percen,$tax_val) = explode('%*#', $pair);

           $arr_store[] = $store;

     }
    print_r($arr_store);

答案 1 :(得分:1)

为什么不将它存储在数组中?

$stores = array();
foreach ($pairs as $pair) {
    list($product,$store,$qty,$unit,$total_price,$discount,$discount_percen,$discount_value,$tax,$tax_percen,$tax_val) = explode('%*', $pair);    
    $stores[] = $store;
}

print_r($stores); // will contain DEALER at 0th index and DISTRIBUTOR at 1st index

DEMO