加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP爆炸并将其分配给多维数组

发布时间:2020-12-13 17:46:35 所属栏目:PHP教程 来源:网络整理
导读:我想爆炸两次字符串并制作一个多维数组. $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 co
我想爆炸两次字符串并制作一个多维数组.

$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
    )

)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读