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