PHP爆炸并将其分配给多维数组 [英] PHP explode and assign it to a multi-dimensional array
本文介绍了PHP爆炸并将其分配给多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想爆炸两次字符串,制成一个多维数组.
i want to explode a string two time and make a multi-dimensional array.
$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
)
但是我想要达到的目标将如下所示:
but what i want to achive will look like this:
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
)
此处,第一个索引应代表行号,第二个索引应代表字号.
如何爆炸字符串以拥有这样的数组?
here, the first index should represent the line number and second index will represent the word number.
How to explode the string to have such array?
推荐答案
做到这一点:
$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
)
)
这篇关于PHP爆炸并将其分配给多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文