【问题标题】:how to choose a "sub-array" in a foreach loop [closed]如何在 foreach 循环中选择“子数组”[关闭]
【发布时间】:2013-12-09 13:49:13
【问题描述】:

我有一个数组数组

$person = array(2) {
      [billy]=>
        array(3) {
          ["height"]=>
          string(60) "tall"
          ["build"]=>
          string(7) "slim"
         ["attractiveness"]=>
         string(7) "extremely"
      }
    [carl]=>
      array(3) {
        ["height"]=>
        string(60) "short"
        ["build"]=>
        string(7) "chubby"
        ["attractiveness"]=>
        string(7) "neglegible"
   }

不幸的是,卡尔对他没有任何兴趣。相反,比利的需求量很大,人们希望看到比利的详细信息。

所以我想遍历数组,只返回比利的信息。

function findHotty($billy){
   foreach ( $person as $meat)
   {
      // wizardry 
      return onlyBilly
   }
}

我希望在函数中传递子数组的名称,所以如果明天 Carl 风靡一时——他具有某种不可否认的魅力——当我调用该方法时,我可以将它传递给 Carl,它会寻找他的子-大批。 我希望这很清楚!

【问题讨论】:

  • 你用过 PHP 编程吗?因为这是 PHP 101 编码
  • return $person[$name] - 不需要任何循环,尽管您应该实施某种错误检查以确保名称存在于 people 数组中。
  • 另外这不是 PHP 数组语法。
  • 每个人都会时不时地与基础知识斗争!
  • @sємsєм 这是一个数组的 PHP var_dump

标签: php arrays foreach


【解决方案1】:

不需要任何循环,尽管您应该实施某种错误检查以确保名称存在于 people 数组中。

function findHotty($name) {
    if (!isset($person[$name])) {
        // do something when the name doesn't exist
    }
    return $person[$name];
}

【讨论】:

    【解决方案2】:

    你可以试试下面的:-

    function findHotty($billy){
       foreach ( $person as $key => $meat)
       {
              if($key=='Billy')
              {
                 $meat['..'];
              }
          // wizardry 
          return onlyBilly
       }
    }
    

    【讨论】:

    • 这太过分了。 $person['Billy'] 呢?
    【解决方案3】:

    这里有两种方法可以得到你的比利。如果没有比利,这两个函数都返回比利的数据或 false。如果您的阵列中有两个比利,您只会得到第一个。

    <?php
    $persons = array(
      'billy' => array(
        'height' => 'tall',
        'build' => 'slim',
        'attractiveness' => 'extremely'
      },
      'carl' => array(
        'height' => 'short',
        'build' => 'chubby',
        'attractiveness' => 'neglegible'
      )
    );
    
    function findHotty($billy){
      foreach ($persons as $name => $details)
        if($name == $billy){
          return $details;
        }
      }
    
      return false;
    };
    
    function findHotty2($billy){
      return isset($persons[$billy]) ? $persons[$billy] : false;
    };
    

    【讨论】:

    • 有点迟到的评论,但请务必注意 $persons 在这些函数中不可用,除非您添加 global $persons; 或将其作为参数传递。
    • 啊,是的,我们不在 JS 中;)
    猜你喜欢
    • 2020-05-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多