3

如何在某个索引后停止爆炸功能。例如

    <?php
        $test="The novel Prognosis Negative by Art Vandelay expresses protest against many different things. The story covers a great deal of time and takes the reader through many different places and events, as the author uses several different techniques to really make the reader think. By using a certain type of narrative structure, Vandelay is able to grab the reader’s attention and make the piece much more effective and meaningful, showing how everything happened";

    $result=explode(" ",$test);
    print_r($result);
?>

如果只想使用前 10 个元素怎么办 ($result[10]) 填充 10 个元素后如何停止分解功能。

一种方法是首先将字符串修剪到前 10 个空格(“”)

还有其他方法吗,我不想在任何地方限制后存储剩余的元素(如使用正限制参数所做的那样)?

4

2 回答 2

11

函数的第三个参数是什么?

数组爆炸(字符串 $delimiter ,字符串 $string [, int $limit ] )

检查$limit参数。

手册: http: //php.net/manual/en/function.explode.php

手册中的一个例子:

<?php
$str = 'one|two|three|four';

// positive limit
print_r(explode('|', $str, 2));

// negative limit (since PHP 5.1)
print_r(explode('|', $str, -1));
?>

上面的示例将输出:

数组 ( [0] => 一 [1] => 二|三|四 ) 数组 ( [0] => 一 [1] => 二 [2] => 三)

在你的情况下:

print_r(explode(" " , $test , 10));

根据 php 手册,当您使用limit参数时:

如果 limit 设置为正,则返回的数组将包含最大限制元素,最后一个元素包含字符串的其余部分。

因此,您需要去掉数组中的最后一个元素。您可以使用array_pop( http://php.net/manual/en/function.array-pop.php ) 轻松完成。

$result = explode(" " , $test , 10);
array_pop($result);
于 2012-10-17T14:04:09.697 回答
3

您可以阅读以下文档explode

$result = explode(" ", $test, 10);
于 2012-10-17T14:04:35.180 回答