【问题标题】:How to print a specific value in array in PHP?如何在 PHP 中打印数组中的特定值?
【发布时间】:2010-05-03 22:01:05
【问题描述】:
array(2) {
  [0]=>
  object(stdClass)#144 (7) {
    ["id"]=>
    string(1) "2"
    ["name"]=>
    string(8) "name1"
    ["value"]=>
    string(22) "Lorem Ipsum Dolar Amet"
    ["type"]=>
    string(8) "textarea"
    ["group"]=>
    string(1) "1"
    ["published"]=>
    string(1) "1"
    ["ordering"]=>
    string(1) "1"
  }
  [1]=>
  object(stdClass)#145 (7) {
    ["id"]=>
    string(1) "4"
    ["name"]=>
    string(6) "Link1"
    ["value"]=>
    string(36) "abcabcab"
    ["type"]=>
    string(4) "link"
    ["group"]=>
    string(1) "1"
    ["published"]=>
    string(1) "1"
    ["ordering"]=>
    string(1) "2"
  }
}

我只想打印 id=4 的“值”(abcabcab)。我怎样才能做到这一点?

【问题讨论】:

    标签: php arrays foreach


    【解决方案1】:
    foreach($array as $row){
     if($row['id']==4){
      print($row['value']);
     }
    }
    

    【讨论】:

    • 请注意 id 是一个字符串。虽然我不认为这里的转换有什么奇怪的地方,但我更愿意尽可能远离类型转换以进行比较。
    【解决方案2】:
    foreach ($array as $entry) {
       if ($entry['id'] == 4) 
          echo $entry['value'];
    
    }
    

    【讨论】:

    • 因为它是一个对象,所以$entry->value的对象属性语法会更好
    【解决方案3】:
    array_walk($a, function($el){if($el->id === 4){print $el->value;}});
    

    【讨论】:

    • 这只是 PHP 5.3 及更高版本,而且有点……异国情调。希望这是一个半开玩笑的答案? :)
    • 偶尔采取不同的方法很好。 :)
    【解决方案4】:

    这行得通:

    foreach ($array as $entry) {
       if ($entry->id == 4) 
          echo $entry->value;
    }
    

    谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-28
      相关资源
      最近更新 更多