hansi silva
hansi silva

Reputation: 99

How to splitt a string to an array with keys and values using php

I have string and I want to splitt it to array and remove a specific part and then convert it back to a string .

$string = "width,100;height,8600;block,700;narrow,1;"

I want to search block in this string and remove it with its value "block,700;" and get the string as "width,100;height,8600;narrow,1;"

below is my code php which i tried.Please advice me

                $outerARR = explode(";", $string);
                $arr = array();
                foreach ($outerARR as $arrvalue) {
                    $innerarr = explode(",", $arrvalue);
                    $arr[] = $innerarr;
                }
                for ($i = 0; $i < count($arr); $i++) {
                    if (in_array($arr, 'block')) {
                      unset($arr[$i]);

                    }
                }

Please note that "block" in aboive string will not always contain and the value may differ. So I can't use string replace . please advice

Upvotes: 0

Views: 45

Answers (2)

ilpaolino
ilpaolino

Reputation: 11

Try this:

$string = "width,100;height,8600;block,700;narrow,1;"
$outerARR = explode(";", $string);
$arr = array();
foreach ($outerARR as $arrvalue) {
    $innerarr = explode(",", $arrvalue);
    $arr[$innerarr[0]] = $innerarr[1];
}
if (array_key_exists('block', $arr)) {
    unset($arr['block']);
}

Upvotes: 1

mehulmpt
mehulmpt

Reputation: 16587

You essentially want to replace part of your string:

$string = "width,100;height,8600;block,700;narrow,1;";
$regex = '#(block,(.*?);)#';
$result = preg_replace($regex, '', $string);
echo $result;

Upvotes: 1

Related Questions