Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP爆炸,保存;剩菜;_Php_Explode - Fatal编程技术网

PHP爆炸,保存;剩菜;

PHP爆炸,保存;剩菜;,php,explode,Php,Explode,在这种情况下,一切都按预期进行: $someString = '1|2|3|4'; list($val1, $val2, $val3, $val4) = explode("|", $someString); 在以下场景中,$someString中的值比$VAL中的值多: $someString = '1|2|3|4|5|6'; list($val1, $val2, $val3, $val4) = explode("|", $someString); 如何使$val4在第二种情况下为4 | 5

在这种情况下,一切都按预期进行:

$someString = '1|2|3|4';
list($val1, $val2, $val3, $val4) = explode("|", $someString);
在以下场景中,$someString中的值比$VAL中的值多:

$someString = '1|2|3|4|5|6';
list($val1, $val2, $val3, $val4) = explode("|", $someString);
如何使$val4在第二种情况下为4 | 5 | 6而不是4,或者如何在不添加$val5、$val6等的情况下将这些“剩余”放在$val4的末尾,使其为456?

可以接受名为
$limit
的第三个可选参数:

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

如果
limit
参数为负值,则返回除最后一个
-limit
之外的所有组件

如果
limit
参数为零,则将其视为
1

因此,根据该逻辑,您应该使用
explode(|“,$someString,4)

可以接受第三个可选参数
$limit

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

如果
limit
参数为负值,则返回除最后一个
-limit
之外的所有组件

如果
limit
参数为零,则将其视为
1

因此,根据该逻辑,您应该使用
explode(|“,$someString,4)


在特定情况下,您可以使用
explode
函数的限制子句。但是,一般来说,没有一种干净的方法可以捕获
list()
作业的“剩余部分”,尽管我们可以让它工作

表示返回值是指定的数组

例如:

$arr = array('a', 'b', 'c', 'd', 'e');
var_dump(list($a, $b, $c) = $arr);
/*
array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}
*/

var_dump($a, $b, $c);
/*
string(1) "a"
string(1) "b"
string(1) "c"
*/
我们可以使用
array\u slice()
来利用这一点提取剩余内容,同时执行分配:

$leftovers = array_slice( list($a, $b, $c) = $arr, 3);
这与执行以下操作具有相同的效果:

$temp = operation_to_build_array();

list($a, $b, $c) = $temp;
$leftovers = array_slice($temp, 3);

在特定情况下,您可以使用
explode
函数的限制子句。但是,一般来说,没有一种干净的方法可以捕获
list()
作业的“剩余部分”,尽管我们可以让它工作

表示返回值是指定的数组

例如:

$arr = array('a', 'b', 'c', 'd', 'e');
var_dump(list($a, $b, $c) = $arr);
/*
array(5) {
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "b"
  [2]=>
  string(1) "c"
  [3]=>
  string(1) "d"
  [4]=>
  string(1) "e"
}
*/

var_dump($a, $b, $c);
/*
string(1) "a"
string(1) "b"
string(1) "c"
*/
我们可以使用
array\u slice()
来利用这一点提取剩余内容,同时执行分配:

$leftovers = array_slice( list($a, $b, $c) = $arr, 3);
这与执行以下操作具有相同的效果:

$temp = operation_to_build_array();

list($a, $b, $c) = $temp;
$leftovers = array_slice($temp, 3);

explode(“|”,$someString,4)
explode(“|”,$someString,4)
谢谢。我原以为这一限制会让所有其他人都不知道,但事实似乎并非如此。这正是我想要的。谢谢。我原以为这一限制会让所有其他人都不知道,但事实似乎并非如此。这正是我想要的。