【问题标题】:php foreach in an array get another field's value数组中的php foreach获取另一个字段的值
【发布时间】:2017-06-14 10:32:37
【问题描述】:

我有这个 std 类对象数组:

$myarray = 
    Array
    (
        [0] => stdClass Object
            (
                [text] => lorem lorem
                [src] => web
            )

        [1] => stdClass Object
            (
                [text] => ipsum ipsum
                [src] => book
            )
    )

我有一个$value = "lorem lorem",我想在数组中查找并返回该对象的src

这是我的尝试:

foreach($myarray -> 'text' as $key => $text_value){
    if($value == $text_value){
          $new_src = $myarray -> 'src';
    }
}

【问题讨论】:

  • $myarray -> 'text' ??

标签: php arrays object foreach


【解决方案1】:

你快到了,你需要遍历数组然后检查对象的text属性:

foreach ($myarray as $object) {
    if ($object->text == $text_value){
          $new_src = $object->src;
    }
}

这将迭代数组项并获取每个StdClass 对象,然后您可以使用该对象将text$text_value 进行比较,如果匹配则更新$new_src

【讨论】:

    【解决方案2】:

    您可以过滤$item->text == $value

    $value = "lorem lorem"
    $array = array_filter($myarray, function($v) use($value) {
      return $v->text == $value;
    });
    $srcs = array_map(function($v){return $v->src;}, $array);
    print_r($srcs);
    

    【讨论】:

      【解决方案3】:

      我认为这会有所帮助,我稍微改变了#1 的答案

      $src = getSrc($myarray, $value);
      
      function getSrc($objArray, $text) {
          foreach($objArray as $obj){
              if ($obj->text == $value)
                  return $obj->src;
          }
          return false;
      }
      

      【讨论】:

        猜你喜欢
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        • 2011-02-11
        • 2014-03-03
        • 2013-12-27
        • 1970-01-01
        • 2022-07-25
        • 2015-11-18
        相关资源
        最近更新 更多