Reputation: 399
$string = "706AN=0,503-PP=0,504-PP=0,519=0,606BOX=0,417=2";
// This variable is a result from a database column type text
I need to get individually the code before "=" and the result assigned to that code, after "=". The split string should return me something like:
Code 706AN has quantity 0
Code 503-PP has quantity 0
Code 504-PP has quantity 0
Code 519 has quantity 0
Code 606BOX has quantity 0
Code 417 has quantity 2
How can I substract each code with his own quantity result?
Upvotes: 1
Views: 1086
Reputation: 48031
Your question requirements don't appear to require parsing the text into a temporary array before returning the data to a newly formatted string. Just use preg_replace()
to capture the vital substrings and apply the desired text around those substrings. Demo
$string = "706AN=0,503-PP=0,504-PP=0,519=0,606BOX=0,417=2";
echo preg_replace(
'#([^=]+)=(\d+),?#',
"Code \$1 has quantity \$2\n",
$string
);
Output:
Code 706AN has quantity 0
Code 503-PP has quantity 0
Code 504-PP has quantity 0
Code 519 has quantity 0
Code 606BOX has quantity 0
Code 417 has quantity 2
Upvotes: 0
Reputation: 11
$string = "706AN=0,503-PP=0,504-PP=0,519=0,606BOX=0,417=2";
$exp = explode(',', $string);
foreach ($exp as $key => $value) {
$list = explode('=', $value);
echo "Code $list[0] has quantity $list[1] </br>";
}
Upvotes: 1
Reputation: 6223
You can use explode
Working Demo: https://eval.in/869203
$string = "706AN=0,503-PP=0,504-PP=0,519=0,606BOX=0,417=2";
$temp = explode(',', $string);
foreach ($temp as $key => $value) {
list($code,$quantity) = explode('=', $value);
echo "Code $code has quantity $quantity </br>";
}
Upvotes: 2
Reputation: 63
I can give you a code example later, im in a hurry atm
hth
Upvotes: -1