我想在表格中划分字符串,我的需要是
输出:
// First Output
$name ='aaaa';
$first='DUT.A1';
$second='E3.3 H2.3 Y3.333 h88.h fdfd.87';
$third ='J66.H3';
// SecondOutput
$name ='bbbb';
$first='DUT.A2';
$second='F2.2 F3.1 Y1.1';
$third ='J30.A1';
输入:
$a = "aaaa ; DUT.A1 E3.3 H2.3 Y3.333 h88.h fdfd.87 J66.H3";
$b = "bbbb ; DUT.A2 F2.2 F3.1 Y1.1 J30.A1";
$c = "cccc ; DUT.A3 H2.3 Y3.333 h88.h Y1.1 J45.G2";
使用explode函数来划分变量,如
$exp = explode(";",$a);
$name = $exp[0];
$x = $exp[1];
$x1 = explode(" ",$x);
$total = count($x1);
$first = $x1[1];
$loop_end = $total-2;
for($i=2;$i<=$loop_end;$i++) {
$second .= $x1[$i]."";
}
$third = $x1[$total-1]
用于显示以上输出。
如果我给,
$var = "haha ; J1.A1 DUT.A1 DUT.A2 C1.1 C2.1 ,
F2.1 F4.1 K1.1 ,
F2.1 F4.1 K1.1 ,
F2.1 F4.1 K1.1 ";
我希望在Semicolon之前作为名称,首先是DUT.xx之类的字符串(前面没有空格DUT.A1 DUT.A2
)
字符以J和After Numeric值开头,它存储在第三个(例如J1.A1
中)作为第三个
字符后不是J)。存储在变量Second中的平衡字符,例如(例如
$second = 'C1.1 C2.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1';
)
答案 0 :(得分:2)
这是所需的输出吗?
$arr = array(
"aaaa ; DUT.A1 E3.3 H2.3 Y3.333 h88.h fdfd.87 J66.H3",
"bbbb ; DUT.A2 F2.2 F3.1 Y1.1 J30.A1",
"cccc ; DUT.A3 H2.3 Y3.333 h88.h Y1.1 J45.G2",
"haha ; J1.A1 J1.A2 DUT.A1 DUT.A2 C1.1 C2.1 ,F2.1 F4.1 K1.1 ,F2.1 F4.1 K1.1 ,F2.1 F4.1 K1.1 ");
foreach ($arr as $item) {
echo "<b>item</b> = $item<hr/>";
$parts = preg_split('/\s*;\s*/',$item);
$name = $parts[0];
$first = array();
$second = array();
$third = array();
$split = preg_split('/\s*,\s*/',$parts[1]);
foreach ($split as $values) {
preg_match_all('/\b[\w\d]+\.[\d\w]+\b/',$values,$value);
$sec = array();
foreach ($value[0] as $item) {
preg_match('/^DUT\./',$item,$match);
if (!empty($match[0])) {
$first[] = $item; continue;
}
preg_match('/^J\d+\./',$item,$match);
if (!empty($match[0])) {
$third[] = $item; continue;
}
$sec[] = $item;
}
$second[] = implode(' ', $sec);
}
$first = implode(' ', $first);
$second = implode(',', $second);
$third = implode(' ', $third);
echo 'name = ' . $name . "\n";
echo 'first = ' . $first . "\n";
echo 'second = ' . $second . "\n";
echo 'third = ' . $third . "\n\n";
}
项目 = aaaa; DUT.A1 E3.3 H2.3 Y3.333 h88.h fdfd.87 J66.H3
name = aaaa
first = DUT.A1
second = E3.3 H2.3 Y3.333 h88.h fdfd.87
第三名= J66.H3
item = bbbb; DUT.A2 F2.2 F3.1 Y1.1 J30.A1
name = bbbb
第一= DUT.A2
第二= F2.2 F3.1 Y1.1
第三= J30.A1
item = cccc; DUT.A3 H2.3 Y3.333 h88.h Y1.1 J45.G2
name = cccc
第一= DUT.A3
第二= H2.3 Y3.333 h88.h Y1.1
第三名= J45.G2
项目 =哈哈; J1.A1 J1.A2 DUT.A1 DUT.A2 C1.1 C2.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1
name = haha
first = DUT.A1 DUT.A2
第二个= C1.1 C2.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1,F2.1 F4.1 K1.1
第三= J1.A1 J1.A2