Php 基于分隔符从另一个数组拆分数组
我正在试验PHP,我想知道是否有一种简单的方法可以实现这一点: 我有两个阵列:Php 基于分隔符从另一个数组拆分数组,php,arrays,Php,Arrays,我正在试验PHP,我想知道是否有一种简单的方法可以实现这一点: 我有两个阵列: $array1 = ('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J') $array2 =('$', '%', '&') 如何在array2中定义的分隔符之间获得4个单独的数组?换句话说,我应该得到4个数组: ('A', 'B') ('C', 'D', 'E') ('F', 'G', 'H', 'I') ('J')
$array1 = ('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J')
$array2 =('$', '%', '&')
如何在array2中定义的分隔符之间获得4个单独的数组?换句话说,我应该得到4个数组:
('A', 'B')
('C', 'D', 'E')
('F', 'G', 'H', 'I')
('J')
这个怎么样
<?php
/**
* @author - Sephedo
* @for - ImTryinl @ Stackoverflow
* @question - http://stackoverflow.com/questions/18705886/splitting-an-array-based-on-delimiters-from-another-array
*/
$array1 = array('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J');
$array2 = array('$', '%', '&');
$return = array();
$x = 0;
foreach( $array1 as $value )
{
if( in_array( $value, $array2 ) )
{
$x++;
}
else
{
$return[$x][] = $value;
}
}
var_dump( $return );
?>
这个怎么样
<?php
/**
* @author - Sephedo
* @for - ImTryinl @ Stackoverflow
* @question - http://stackoverflow.com/questions/18705886/splitting-an-array-based-on-delimiters-from-another-array
*/
$array1 = array('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J');
$array2 = array('$', '%', '&');
$return = array();
$x = 0;
foreach( $array1 as $value )
{
if( in_array( $value, $array2 ) )
{
$x++;
}
else
{
$return[$x][] = $value;
}
}
var_dump( $return );
?>
这应该起作用:
function splitArrays($source, $delimiters) {
$result = array();
$result[] = array();
$resultIndex = 0;
foreach($source as $value) {
if(in_array($value, $delimiters)) {
$result[] = array();
$resultIndex++;
}
else {
$result[$resultIndex][] = $value;
}
}
}
这应该起作用:
function splitArrays($source, $delimiters) {
$result = array();
$result[] = array();
$resultIndex = 0;
foreach($source as $value) {
if(in_array($value, $delimiters)) {
$result[] = array();
$resultIndex++;
}
else {
$result[$resultIndex][] = $value;
}
}
}
请回答:
请回答:
输出:
Array
(
[0] => Array
(
[0] => A
[1] => B
)
[1] => Array
(
[0] => C
[1] => D
[2] => E
)
[2] => Array
(
[0] => F
[1] => G
[2] => H
[3] => I
)
)
输出:
Array
(
[0] => Array
(
[0] => A
[1] => B
)
[1] => Array
(
[0] => C
[1] => D
[2] => E
)
[2] => Array
(
[0] => F
[1] => G
[2] => H
[3] => I
)
)
将帮助你…我不认为只有
array\u slice
会起作用;在您的分隔符集上使用preg_split(),然后在每个结果上使用str_split()将对您有所帮助…我不认为只有array_slice
会起作用;在您的分隔符集上使用preg_split(),然后在每个结果上使用str_split()简单高效。简单高效。
$array1 = array('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J');
$array2 = array('$', '%', '&');
$result = array_map(
'str_split',
preg_split(
'/[' . preg_quote(implode('', $array2)) . ']/',
implode('', $array1)
)
);
var_dump($result);