Php 复杂的?Eplode()变量我可以';不明白
我有一个变量,我们称之为Php 复杂的?Eplode()变量我可以';不明白,php,foreach,explode,Php,Foreach,Explode,我有一个变量,我们称之为$var,它的回声类似于: 32小部件:18,28-Widgets:24,57-Widgets:45,44-Widgets:24,55-Widgets:45 该变量是通过表单提交和jQuery排序表的组合创建的(这就是为什么所有内容最终都是一个变量,而不是两个)。订单很重要 最后,我想给出两个变量(可以是数组),它们是: $newVar1 = 32,18,24,45,24 $newVar2 = Widgets: 18,Widgets: 24,Widgets: 45,Wid
$var
,它的回声类似于:
32小部件:18,28-Widgets:24,57-Widgets:45,44-Widgets:24,55-Widgets:45
该变量是通过表单提交和jQuery排序表的组合创建的(这就是为什么所有内容最终都是一个变量,而不是两个)。订单很重要
最后,我想给出两个变量(可以是数组),它们是:
$newVar1 = 32,18,24,45,24
$newVar2 = Widgets: 18,Widgets: 24,Widgets: 45,Widgets: 24,Widgets: 45
我从以下几点开始:
$newVars=explode(“,”,$var)代码>
但我不知道从那以后该怎么办。我尝试过各种说法,例如:
foreach ($newVars as $newVar) :
//Various explode() functions tried here.
endforeach;
如果有人知道我错过了什么,我当然会感谢你的帮助
谢谢,,
埃里克它不太漂亮,但它会成功的
<?php
$str = "32-Widgets: 18,28-Widgets: 24,57-Widgets: 45,44-Widgets: 24,55-Widgets: 45";
$entries = explode(",", $str);
$parts1 = array();
$parts2 = array();
foreach ($entries as $e)
{
$temp = explode("-", $e);
$parts1[] = $temp[0];
$parts2[] = $temp[1];
}
print_r($parts1);
print_r($parts2);
?>
运行示例:您是否尝试过类似的方法:
public function just_a_test() {
$var = "32-Widgets: 18,28-Widgets: 24,57-Widgets: 45,44-Widgets: 24,55-Widgets: 45";
$vars = explode(',', $var);
$partsA = $partsB = array();
foreach ($vars as $aVar) {
preg_match('/^(\d+)-(Widgets: \d+)$/i', $aVar, $parts);
$partsA []= $parts[0];
$partsB []= $parts[1];
}
echo '<pre>';
print_r($partsA);
print_r($partsB);
echo '</pre>';
}
public function just_a_test(){
$var=“32小部件:18,28-Widgets:24,57-Widgets:45,44-Widgets:24,55-Widgets:45”;
$vars=分解(',',$var);
$partsA=$partsB=array();
foreach($vars as$aVar){
预匹配('/^(\d+)-(小部件:\d+$/i',$aVar,$parts);
$partsA[]=$parts[0];
$partsB[]=$parts[1];
}
回声';
印刷费($partsA);
打印(partsB);
回声';
}
通过对每个数组调用introde(),您可以很容易地得到像您一样的输出。另一方面,如果您知道正则表达式总是采用固定格式,我可能会使用正则表达式。例如:/(\d+)-(小部件:\d+)/i