我想爆炸两次字符串并制作一个多维数组.
$data = "i love funny movies \n i love stackoverflow dot com \n i like rock song"; $data = explode("\n",$data);
所以print_r($data);将输出:
Array ( [0] => i love funny movies [1] => i love stackoverflow com [2] => i like rock song )
现在,如果我喜欢这样:
$line_data = explode(" ",$data); // explode $data variable by spaces.
print_r($line_data);会给我这个:
Array ( [0] => i [1] => love [2] => funny [3] => movies [4] => [5] => i [6] => love [7] => stackoverflow [8] => dot [9] => com [10] => [11] => i [12] => like [13] => rock [14] => song )
但我想要实现的将是这样的:
Array ( [0][0] => i [0][1] => love [0][2] => funny [0][3] => movies [0][4] => [1][5] => i [1][6] => love [1][7] => stackoverflow [1][8] => dot [1][9] => com [1][10] => [2][11] => i [2][12] => like [2][13] => rock [2][14] => song )
这里,第一个索引应代表行号,第二个索引代表字号.
如何爆炸字符串有这样的数组?
解决方法
这样做:
$data = "i love funny movies \n i love stackoverflow dot com \n i like rock song"; $data = explode(" \n ",$data); $out = array(); $step = 0; $last = count($data); $last--; foreach($data as $key=>$item){ foreach(explode(' ',$item) as $value){ $out[$key][$step++] = $value; } if ($key!=$last){ $out[$key][$step++] = ' '; // not inserting last "space" } } print '<pre>'; print_r($out); print '</pre>';
输出(你需要什么):
Array ( [0] => Array ( [0] => i [1] => love [2] => funny [3] => movies [4] => ) [1] => Array ( [5] => i [6] => love [7] => stackoverflow [8] => dot [9] => com [10] => ) [2] => Array ( [11] => i [12] => like [13] => rock [14] => song ) )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。