爆炸字符串并输出精确的2个元素

时间:2013-08-01 07:38:06

标签: php arrays

我有一个字符串

$input = 'Hello | world';

我希望将其分解为Helloworld,所以

$output = explode(' | ', $input);

如果我有

$input = 'Hello | world | third';

它返回3个元素,所以我必须切片这个数组:

$output = array_slice(explode(' | ', $input), 0, 2);

如果

$input = 'Hello';

然后我必须添加空元素以在输出中有两个,所以:

$output = array_slice(array_merge(explode(' | ', $input), array(null)), 0, 2);

是否可以简化这种单线程?

3 个答案:

答案 0 :(得分:2)

如何使用list

$first = null;
$second = null;

list($first, $second) = explode('|', $string);

修改

要阻止通知,您可以使用array_merge:

list($first, $second) = array_merge(explode('|', $string), array(null));

list($first, $second) = explode('|', "{$string}|"));

答案 1 :(得分:2)

$output = array_slice(explode(" | ", "$input | "), 0, 2);

答案 2 :(得分:-1)

您可以使用list()的组合并添加最大数量 由explode()函数接收的段,例如:

<?php

$in = array(
    "Hello",
    "Hello | world",
    "Hello | My | Lovely | World"
    );

foreach($in as $test){
    list($one,$two) = explode(" | ", $test, 2);
    print_r(array($one, $two));
}

如果你从爆炸功能中省略了第三个参数 即使有更多 - 那将只会得到前两个部分 然后将类似于你的array_slice部分。