为什么这个 PHP foreach 不返回值


why doesn't this php foreach return the value?

如果你看下面的代码,当returnif语句中时,它不会回显任何内容。 当我取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;

使用 break 而不是 return;

  $array_key=0;
  foreach($images as $key => $image){                 
     if($image['id'] == $image_id){
        $array_key= $key;
        break;       
     }
  }

从 php 返回:

如果从函数内部调用,return 语句会立即结束当前函数的执行,并将其参数作为函数调用的值返回;如果从全局范围调用,则结束当前脚本文件的执行。如果包含或需要当前脚本文件,则控制权将传递回调用文件。

这是工作代码。

您需要添加一个 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;