如果您查看下面的代码,return
语句中的if
时,它不会回显任何内容。当我取return out
时,它会回显正确的值。这是为什么?
$images= Array(
[0] => Array
(
[id] => 131],
[width] => 400]
),
[1] => Array
(
[id] => 140],
[width] => 900]
)
)
$array_key=0;
foreach($images as $key => $image){
if($image['id'] == $image_id){
$array_key= $key;
return;
}
}
echo $array_key;
答案 0 :(得分:1)
使用break
代替return;
$array_key=0;
foreach($images as $key => $image){
if($image['id'] == $image_id){
$array_key= $key;
break;
}
}
来自php return:
如果在函数内调用,则return语句立即结束当前函数的执行,并返回其参数作为函数调用的值;如果从全局范围调用,则结束当前脚本文件的执行。如果包含或需要当前脚本文件,则将控制权传递回调用文件。
答案 1 :(得分:0)
这是工作代码。
您需要添加 break
语句,并且必须定义 $image_id
值。
<?php
$images= Array(
0 => Array
(
'id' => 131,
'width' => 400
),
1 => Array
(
'id' => 140,
'width' => 900
)
);
$array_key=0;
$image_id=140;
foreach($images as $key => $image){
if($image['id'] == $image_id){
$array_key= $key;
break;
///return;
}
}
echo $array_key;