>백엔드 개발 >PHP 튜토리얼 >foreach 两层改变原值,请大神赐教

foreach 两层改变原值,请大神赐教

WBOY
WBOY원래의
2016-06-06 20:12:27943검색

如下要怎么做

<code>$data = [1,2,3,[a,b,c]];
foreach($data as &$e){
    //$data数组里的数量不确定,一维数组各加1,二维数组各拼接m
    
}
var_dump($data);//[2,3,4,[am,bm,cm]]
unset($e);</code>

回复内容:

如下要怎么做

<code>$data = [1,2,3,[a,b,c]];
foreach($data as &$e){
    //$data数组里的数量不确定,一维数组各加1,二维数组各拼接m
    
}
var_dump($data);//[2,3,4,[am,bm,cm]]
unset($e);</code>

<code>$data = [1,2,3,['a','b','c']];
foreach($data as &$e){
    //$data数组里的数量不确定,一维数组各加1,二维数组各拼接m
    if(is_array($e)){
        foreach ($e as $k => &$v) {
            $v = $v.'m';
        }
    }else{
        $e = $e + 1;
    }
    
}
print_r($data);//[2,3,4,[am,bm,cm]]</code>

<code><?php function test(&$array){
    foreach ($array as $key => &$value) {
        if(is_array($value)){
            foreach($value as &$v){
                $v.= 'm';
            }
        } else {
            ++$value;
        } 
    }
}
$array = array(1, 2, 3, array('a', 'b', 'c'));
test($array);
print_r($array);</code>

运行结果如下:
Array
(

<code>[0] => 2
[1] => 3
[2] => 4
[3] => Array
    (
        [0] => am
        [1] => bm
        [2] => cm
    )
</code>

)

<code><?php $data = [1,2,3,['a','b','c']];
foreach($data as &$v){
    if(is_array($v)){
        foreach ($v as &$av) {
            $av .= 'm';
        }
    }else if(is_numbric($v)){
        ++$v;
    }
    
}
print_r($data);//[2,3,4,[am,bm,cm]]</code></code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.