我有一个字符串,它已被行和列连接起来,并使用特殊字符分隔。以下是我的代码:
$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
我想分开这个,我不知道该怎么办。此处输入的字符串未知。
请提出任何建议。
答案 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