Php 简单foreach循环迭代

Php 简单foreach循环迭代,php,arrays,foreach,Php,Arrays,Foreach,我有一个非常基本的问题。我想遍历多维数组。假设我想添加一个if语句来检查值,而不中断foreach循环。。。我的目的是获取特定值的数组 $foo = [ 'one'=> [ 'id'=>1, 'name'=>'32dsfd23' ], 'two' => [ 'id'=>1, 'name'=>'322e3'

我有一个非常基本的问题。我想遍历多维数组。假设我想添加一个if语句来检查值,而不中断foreach循环。。。我的目的是获取特定值的数组

$foo =  [
     'one'=> [
             'id'=>1,
             'name'=>'32dsfd23'
             ],

    'two' => [
             'id'=>1,
             'name'=>'322e3'
             ],
    ];

    function new_func($arr){

        $data=[];
        foreach($arr as $val) {

                foreach($val as $key =>$foofoo) {
                    if(array_key_exists('id',$val)){
                    $data['new_arr']=$foofoo;
                }
                }

        }
        return $data;
    }

    echo "<pre>";
    print_r(new_func($foo));
    echo "</pre>";
$foo=[
“一个”=>[
'id'=>1,
“名称”=>“32dsfd23”
],
“两个”=>[
'id'=>1,
“名称”=>“322e3”
],
];
函数new_func($arr){
$data=[];
外汇($arr作为$val){
foreach($valas$key=>$foooo){
如果(数组\键\存在('id',$val)){
$data['new_arr']=$foofoo;
}
}
}
返回$data;
}
回声“;
打印(新功能($foo));
回声“;
结果是:
数组
(
[new_arr]=>322e3
)

我想得到这样的东西:

排列
(
[新机场]
[0]=>32dsfd23,
[1] =>322e3,

)

您需要在数组中推送新元素。现在你覆盖它们

$foo=[
“一个”=>[
'id'=>1,
“名称”=>“32dsfd23”
],
“两个”=>[
'id'=>1,
“名称”=>“322e3”
],
];
函数new_func($arr){
$data=[];
外汇($arr作为$val){
foreach($valas$key=>$foooo){
如果(数组\键\存在('id',$val)){
$data['new_arr'][]=$foofoo;
}
}
}
返回$data;
}
回声“;
打印(新功能($foo));
回声“;
当您这样做时
$data['new\u arr']=$foofoo
您正在覆盖$data['new_arr']中的值


您需要将其更改为
$data['new\u arr'][]=$foofoo将在该数组中插入值。

$data['new\u arr'][]=$fooo;二维阵列
$foo =  [
     'one'=> [
         'id'=>1,
         'name'=>'32dsfd23'
         ],

    'two' => [
         'id'=>1,
         'name'=>'322e3'
         ],
    ];

    function new_func($arr){

        $data=[];
        foreach($arr as $val) {
            foreach($val as $key =>$foofoo) {
                if(array_key_exists('id',$val)) {

                    $data['new_arr'][] = $foofoo;

                }
            }
        }
        return $data;
    }

    echo "<pre>";
    print_r(new_func($foo));
    echo "</pre>";