dongzhan5286 2013-09-09 19:52
浏览 55
已采纳

基于来自另一个数组的分隔符拆分数组

I'm experimenting with PHP and I was wondering if there is a simple way to accomplish this:

I have 2 arrays:

$array1 = ('A', 'B', '$', 'C', 'D', 'E', '%', 'F', 'G', 'H', 'I', '&', 'J')
$array2  =('$', '%', '&')

How can I get 4 separate arrays that are between the delimiters defined in array2? In other words, I should get 4 arrays:

('A', 'B')
('C', 'D', 'E')
('F', 'G', 'H', 'I')
('J')
  • 写回答

5条回答 默认 最新

  • dqybjj3497 2013-09-09 20:00
    关注

    How about this?

    <?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 );
    
    ?>
    

    Tested and this returns

    array
      0 => 
        array
          0 => string 'A' (length=1)
          1 => string 'B' (length=1)
      1 => 
        array
          0 => string 'C' (length=1)
          1 => string 'D' (length=1)
          2 => string 'E' (length=1)
      2 => 
        array
          0 => string 'F' (length=1)
          1 => string 'G' (length=1)
          2 => string 'H' (length=1)
          3 => string 'I' (length=1)
      3 => 
        array
          0 => string 'J' (length=1)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗