【问题标题】:How can I access individual values in an associative array in PHP?如何在 PHP 中访问关联数组中的单个值?
【发布时间】:2016-12-08 20:27:27
【问题描述】:

我将标准类对象中的元素拉入 assoc 数组,如下所示:

$array = $subjects;
foreach ( $array as $subject ) {

    foreach ( $subject as $prop => $val ) {
        if ( $val !== '' ) {
         echo $prop . ' = ' . $val;
         echo "<br>";
        }
    }
}

我从上面得到了我期望的结果,除了我想做的是将单个值回显到一个表中。

当我这样做时: 回声 $subject['day1']; 我明白了:“不能使用 stdClass 类型的对象作为数组。”

我哪里错了?提前致谢。

【问题讨论】:

标签: php


【解决方案1】:

如果它使用StdClass,您需要这样做:

$subject->day1

如果您想将其转换为数组,请查看以下问题:php stdClass to array

【讨论】:

  • 这行得通。 $主题->第1天。是否可以附加这样的索引: $subject->day.$x ?
【解决方案2】:

您正在尝试遍历 $array 并且 $array 仍然是一个对象。使用这个:

    $vars = get_object_vars($subjects);

获取关联。来自对象 $subjects 的数组。然后去:

foreach ($vars as $name => $value) {
    echo $name . "=" . $value;
    echo "<br>";
}

【讨论】:

  • get_object _vars 给出一个 0 的数组。
  • 那么你的对象没有很好的定义。告诉我,如果你输入这个,你会得到什么: print "
    "; print_r($subjects);打印“
    ”;
  • 这意味着 $subjects 已经是一个数组,而不是一个对象。
  • 好的,使用这个:$vars = get_object_vars($subjects[0]);获得关联。来自数组 $subjects 的第一个元素的数组。然后去: foreach ($vars as $name => $value) { echo $name . “=”。 $价值;回声“
    ”; }
  • 当我这样做时: echo $subject->day11;我得到了预期的结果。我想将所有值放在一个表中。如何循环值?如果我添加这样的索引: $x ='11';回声 $subject->day.$x; $x++;不管用。我想要的是获得每个值的有效方法。快把我逼疯了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
  • 2013-05-02
  • 2011-05-06
  • 1970-01-01
  • 1970-01-01
  • 2017-06-19
  • 1970-01-01
相关资源
最近更新 更多