//$array 数组中的值用正则替换,再返回一个新数组
$array = array (array ('a1', 'b2', 'c3' ), array ('d4', 'e5', 'f6' ) );
foreach ( $array as $key ) {
foreach ( $key as $value ) {
$str = preg_replace ( '/[a-z1]/', '', $value );
if ($str == NULL) unset ( $str );
$copy_array[] = $str;
}
$new_array [] = $copy_array;
unset ( $copy_array );}
}
print_r ( $new_array );
仅仅是个演示,演示,能在简化简化吧,我觉得太复杂了..............
[color=#FF0000]

解决方案 »

  1.   

    不一定合你的意$array = array (array ('a1', 'b2', 'c3' ), array ('d4', 'e5', 'f6' ) );
    array_walk_recursive($array, 'foo', '/[a-z1]/');
    print_r($array);function foo(&$item, $key, $p) {
      if(! is_array($item)) {
        $item = preg_replace ( $p, '', $item );
      }
    }
    Array
    (
        [0] => Array
            (
                [0] => 
                [1] => 2
                [2] => 3
            )    [1] => Array
            (
                [0] => 4
                [1] => 5
                [2] => 6
            ))
      

  2.   


    $array = array (array ('a1', 'b2', 'c3' ), array ('d4', 'e5', 'f6' ) );
    foreach($array as $k=>$v)
    {
    $regexFilter = new RegexIterator(new ArrayIterator($v), '/[a-z1]/', RegexIterator::REPLACE);
    $regexFilter->replacement = '';
    $outArr[$k] = array_values(array_diff(iterator_to_array($regexFilter), array(NULL)));
    }
    print_r($outArr);Array
    (
        [0] => Array
            (
                [0] => 2
                [1] => 3
            )    [1] => Array
            (
                [0] => 4
                [1] => 5
                [2] => 6
            ))