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"
)
);
展开
 我来答
凡面郭达子
2013-08-10
知道答主
回答量:13
采纳率:0%
帮助的人:13.2万
展开全部
<?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);
?>

希望对你有所帮助

百度网友cb4985820
推荐于2017-11-28 · TA获得超过562个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:230万
展开全部

数据如果来自文件的话,很好操作,下边给你示例不是来自文件的数据

 <?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是个一维数组
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dlong1632
2013-08-10 · TA获得超过280个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:256万
展开全部
要把你想生成的二维数组形式发出来别人才能帮你撒~
array(
0=>array("编号"=>'数量"),
...
)
这一种形式吗?
追问
哥,我改完了。你再看看撒……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式