2021-07-29 PHP 在資料中提取合併所需的資料

PHP 刪除所需要的資料並分拆合併

因為公司要求,把類似的字串分拆合併輸出到表單上

原始資料
COVER: FU = SAN-403-M.GREY
LID: SATIN = 08A-WHITE
PAD CODE: RG001(P19)
PAD: FC = SAN-806-WHITE
CUSTOMER OWN PACKING QUANTITY

輸出結果 :
第一條 : SAN-403-M.GREY / 08A-WHITE / SAN-806-WHITE
第二條: FU / SATIN / FC

<?php

class 裝箱單過濾用
{
public $原始值;

function 過濾非指定值($過濾設定值,$原始值)//第一步
{
$處理後值=mb_split('\r\n',$原始值);// 先分解跳行
$過濾處理後值 = preg_grep($過濾設定值, $處理後值);//找到所需資料,並剔除非所需資料
return implode(",",array_filter($過濾處理後值));//合併後值
}

function 去除指定字串($去除字串陣列,$去除值)
{
	$陣列拆出值=mb_split(',',$去除值);
	$j=count($陣列拆出值)-1;
	$i = 0;
	while ($i <= $j) {
	if (!empty($陣列拆出值[$i])){
	$去除陣列後值[]=str_replace($去除字串陣列,"",$陣列拆出值[$i]);//去除字串變成空白
	}$i++;  }
	 return implode(",",$去除陣列後值);
}

function 擷取符號右邊字串($去除指定字串)
{
	$陣列拆出值=mb_split(',',$去除指定字串);
	$j=count($陣列拆出值)-1;
	$i = 0;
	while ($i <= $j) {
	if (!empty($陣列拆出值[$i])){
	if(strpos($陣列拆出值[$i],'=') !== false){ $去除陣列後值[]=substr(strrchr($陣列拆出值[$i], "="), 1); }else{  $去除陣列後值[]=$陣列拆出值[$i]; }// 

	}$i++;  }
       return $去除陣列後值;
	
}

function 擷取符號左邊字串($去除定義,$去除指定字串)
{

		$陣列拆出值=mb_split(',',$去除指定字串);
		$j=count($陣列拆出值)-1;
		$i = 0;
		while ($i <= $j) {
		if (!empty($陣列拆出值[$i])){
		$c[]= str_replace('=',"",str_replace($去除定義,"",$陣列拆出值[$i]));
		}
		$i++;  

}return $c;
}
}

$裝箱單過濾用 = new 裝箱單過濾用();
$原始值=' 	COVER: FU = SAN-403-M.GREY 
			LID: SATIN = 08A-WHITE
			PAD CODE: RG001(P19)
			PAD: FC = SAN-806-WHITE
			CUSTOMER OWN PACKING QUANTITY
';
$過濾設定值="/=/";
$去除值=$裝箱單過濾用::過濾非指定值($過濾設定值,$原始值);
$去除字串陣列=array("COVER: ","LID: ","PAD: ");
$去除指定字串= $裝箱單過濾用::去除指定字串($去除字串陣列,$去除值);
echo  implode(" / ",$裝箱單過濾用::擷取符號右邊字串($去除指定字串));
echo '<br>';
$去除指定字串=$裝箱單過濾用::去除指定字串($去除字串陣列,$去除值);
$去除定義=$裝箱單過濾用:: 擷取符號右邊字串($去除指定字串);
 echo  implode("/ ",$裝箱單過濾用::擷取符號左邊字串($去除定義,$去除指定字串));
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值