$string = "1-2-3-4 5-6-7-8";
'-' = 分隔值
' ' = 新数组
$array1 = explode("-", $string, 4);
到目前为止,我有这段代码,它将执行值 1 到 4,但我希望它在 4 处停止并创建一个新集合。
例如。
$SET_1[0] = 1
$SET_1[1] = 2
$SET_1[2] = 3
$SET_1[3] = 4
然后
$SET_2[0] = 5
$SET_2[1] = 6
$SET_2[2] = 7
$SET_2[3] = 8
如有任何建议,我们将不胜感激,在将它们放入数组后,我将如何扭转这种情况?
$string = "1-2-3-4-5-6-7-8";
$data = array_chunk(explode('-', $string), 4);
将会返回
$data = array(
array('1', '2', '3', '4'),
array('4', '5', '6', '7')
);
** 更新 **
这将创建一个数组数组,每个数组最多包含 4 个元素。如果您需要可变大小的数组(由字符串中的
' '
指定),请改用它:
$string2 = "1-2-3-4 5-6-7-8-9-10";
function inner_split(&$items) {
$items = explode('-', $items);
}
$data2 = explode(' ', $string2);
array_walk($data2, 'inner_split');
var_dump($data2);
将会输出
$data2 = array(
array('1', '2', '3', '4'),
array('5', '6', '7', '8', '9', '10')
);
首先用空格分割成数字组块,然后用“-”将数字分割成数组。您需要使用正则表达式分割空格。
您应该使用
preg_split(regex, string)
并且空格字符在正则表达式中是 \s 。所以类似preg_split('/\s/', $string)
。
你想要的是多维数组:
所以类似
$set[i] = explode('-',$string, 4)
然后将其嵌套在循环中并迭代字符串,您将能够访问每个单独的字符
$set[i][j]
其中 i 是集合索引,j 是 1,2,3 或 4