Php 标记和重构包含分隔名称-值对的字符串
我有一个结构如下的字符串:Php 标记和重构包含分隔名称-值对的字符串,php,arrays,string,explode,implode,Php,Arrays,String,Explode,Implode,我有一个结构如下的字符串: "01;AA:02;AB:03;AC:" 有没有一种方法可以将其转换为$\u POST样式的格式,其中: $MyVar['01'] = "AA" $MyVar['02'] = "AB" $MyVar['03'] = "AC" ? 我还想在完成更改后,以某种方式将其内爆回原始字符串格式。内爆时不需要前导零,爆炸时也可能不存在前导零 编辑:添加信息 InevntorySKU;InventoryQTY: 086;99:043;99:130;99:13
"01;AA:02;AB:03;AC:"
有没有一种方法可以将其转换为$\u POST样式的格式,其中:
$MyVar['01'] = "AA"
$MyVar['02'] = "AB"
$MyVar['03'] = "AC"
?
我还想在完成更改后,以某种方式将其内爆回原始字符串格式。内爆时不需要前导零,爆炸时也可能不存在前导零
编辑:添加信息
InevntorySKU;InventoryQTY:
086;99:043;99:130;99:131;99:132;99:133;99:134;99:135;99:136;99:137;99:138;99:139;99:140;99:141;99:142;99:143;99:
没有内置函数来执行此操作,但您可以这样做:
$MyVar = array();
foreach(array_filter(explode(":",$input)) as $i) {
list($k,$v) = explode(";",$i,2);
$MyVar[$k] = $v;
}
您可以对反向过程使用类似的设置:
$output = "";
foreach($MyVar as $k=>$v) $output .= $k.";".$v.":";
没有内置函数来执行此操作,但您可以这样做:
$MyVar = array();
foreach(array_filter(explode(":",$input)) as $i) {
list($k,$v) = explode(";",$i,2);
$MyVar[$k] = $v;
}
您可以对反向过程使用类似的设置:
$output = "";
foreach($MyVar as $k=>$v) $output .= $k.";".$v.":";
使用preg_match_all:
preg_match_all('/\d{2}|[a-z]{2}/i', "01;AA:02;AB:03;AC:", $array);
for($i=0;$i<count($array[0]);$i+=2){
$myvar[$array[0][$i]] = $array[0][$i+1];
}
print_r($myvar);
使用preg_split:
$str = '086;99:043;99:130;99:131;99:132;99:133;99:134;99:135;99:136;99:137;99:138;99:139;99:140;99:141;99:142;99:143;99:';
$array = preg_split('/;|:/', $str);
for($i=0;$i<count($array)-1;$i+=2){
$myvar[$array[$i]] = $array[$i+1];
}
print_r($myvar);
使用preg_match_all:
preg_match_all('/\d{2}|[a-z]{2}/i', "01;AA:02;AB:03;AC:", $array);
for($i=0;$i<count($array[0]);$i+=2){
$myvar[$array[0][$i]] = $array[0][$i+1];
}
print_r($myvar);
使用preg_split:
$str = '086;99:043;99:130;99:131;99:132;99:133;99:134;99:135;99:136;99:137;99:138;99:139;99:140;99:141;99:142;99:143;99:';
$array = preg_split('/;|:/', $str);
for($i=0;$i<count($array)-1;$i+=2){
$myvar[$array[$i]] = $array[$i+1];
}
print_r($myvar);
问题-在你的例子中,提前知道$K用于召回。问题-在你的例子中,提前知道$K用于召回。