php将字符串拆分成二维数组
我想讲一段字符串,格式大概是:“编号”+空格+“数量”+回车+”编号“+”空格“+”数量“+回车…………这样的数据存到二维数组里,最后写入数据库。用php。多方搜索无果,...
我想讲一段字符串,格式大概是:“编号”+空格+“数量”+回车+”编号“+”空格“+”数量“+回车…………这样的数据存到二维数组里,最后写入数据库。用php。多方搜索无果,请教大神们如何操作?
数据行数还不一定。有可能是1行 也有可能是10多行。
$str="123 5
456 5
159 6";
数组格式
$order = array
(
"1"=>array
(
"123",
"5"
),
"2"=>array
(
"456".
"5"
),
"3=>array
(
"159",
"6"
)
); 展开
数据行数还不一定。有可能是1行 也有可能是10多行。
$str="123 5
456 5
159 6";
数组格式
$order = array
(
"1"=>array
(
"123",
"5"
),
"2"=>array
(
"456".
"5"
),
"3=>array
(
"159",
"6"
)
); 展开
展开全部
<?php
$str="123 5
456 5
159 6";
function strsToArray($strs,$x) { // 把字符串按指定正则切割为数组
$result = array();
$array = array();
//把与正则匹配的字符串替换为 @
$strs = preg_replace($x, '@', trim($strs));
/* 这里切割字符串,需要注意的是如果字符串中有@
可以把上下两行这个@改为其他字符串中没有的符号 */
$array = explode('@', trim($strs));
foreach ($array as $key => $value) {
$result[] = $value;
}
return $result;
}
$test=strsToArray($str,'/\n/'); // 以换行符切割字符串为数组
foreach ($test as $key => $value) { // 遍历数组,再以空格切割字符串为数组
$testb[]=strsToArray($value,'/\s/');
}
echo var_dump($testb);
?>
希望对你有所帮助
展开全部
数据如果来自文件的话,很好操作,下边给你示例不是来自文件的数据
<?php
if($_POST){
$arr=explode("\n",$_POST["test"]);
$result=array();
foreach($arr as $data){
trim($data) && $result[]=explode(" ",$data); //首先要检查$data是否为空
}
print_r($result);
}
?>
<form action="a.php" method="post">
<textarea name="test" style="width:500px;height:200px;"></textarea>
<input type="submit" value="提交" />
</form>
更多追问追答
追问
谢谢,结果对了!
&&的作用是什么意思呢 不太懂
是不是如果trim($data) 为FALSE 则$result[]=explode(" ",$data); 就不执行了?
我在网上查trim(空值)的结果为null ,和false一样吗?
$result为什么需要加[] ? $arr就没加
刚才测试 $result没有[] 只显示最后一条数据
追答
trim($data)是用于去除 在表单输入的 多余的回车键,比如输入数据后,多敲了一个回车。&& 就是和的意思,前面是true接着执行后边的语句,&&前只要不是false 0 null这些,后边的都会执行。
$result[]=explode(" ",$data); 这一句是将data按空格分成数组然后存入二维数组$result。$result后有[]表示添加一个数组值。[]里边可以有键,但一般都省略掉等价于$result[$i];
$result是二维数组,$arr是个一维数组
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
要把你想生成的二维数组形式发出来别人才能帮你撒~
array(
0=>array("编号"=>'数量"),
...
)
这一种形式吗?
array(
0=>array("编号"=>'数量"),
...
)
这一种形式吗?
追问
哥,我改完了。你再看看撒……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询