【问题标题】:Alternative to foreach() PHP?替代 foreach() PHP?
【发布时间】:2011-08-03 19:36:46
【问题描述】:

我对 PHP 还是很陌生,从周围的所有示例来看,它们似乎都使用了 foreach 语句。

例如

foreach ($variable as $row)

但是我认为我不应该一直使用它,例如我拥有的变量或对象,它在数组中只有一行或实例。

我知道将它们用于多行是有利的,如果您使用 for 循环可能会错过这些行。

但我真的需要用它来回显数组中的一个变量吗?

例如例如这个变量 $stats

array(3) { ["user_interventions"]=> int(4) ["fastest_intervention"]=> array(1) { [0]=> object(stdClass)#22 (1) { ["duration"]=> string(8) "02:10:00" } } ["slowest_intervention"]=> array(1) { [0]=> object(stdClass)#23 (1) { ["duration"]=> string(8) "02:26:00" } } } 

谢谢

【问题讨论】:

  • 喜欢... $stats["user_interventions"] ?
  • 我从未见过有人故意使用 foreach 循环从已知结构变量中仅打印一个值。我认为你的问题的前提是不正确的。您不需要使用循环,只需 echo $array['keyname']echo $object->propertyname 等。
  • 但有时如果我不使用 foreach 它会说“试图获取非对象的属性”但如果我使用 foreach 循环它会解决这个问题

标签: php foreach


【解决方案1】:

如果您知道数组中值的“地址”,则无需循环:

echo $arr['user_interventions'][0]['duration']; // 02:10:00

更多详情here.

【讨论】:

    【解决方案2】:

    不,您不需要在每次需要访问数组值时都使用foreach 循环。您的示例可以按以下方式使用...

    echo $stats['fastest_intervention']['0']->duration; // Outputs: 02:10:00
    

    这是带有缩进的变量转储(使其更易于阅读)。

    array(3) {
        ["user_interventions"]=> int(4)
        ["fastest_intervention"]=> array(1) {
            [0]=> object(stdClass)#22 (1) {
                ["duration"]=> string(8) "02:10:00"
            }
        }
        ["slowest_intervention"]=> array(1) {
            [0]=> object(stdClass)#23 (1) {
                ["duration"]=> string(8) "02:26:00"
            }
        }
    } 
    

    【讨论】:

    • 最后的 ['0'] 是什么意思?那是它在数组中的位置吗?数组标识符是什么
    • 数组以键和值的组合表示。 durations 是嵌套对象 0 的属性,0 是分配给嵌套在数组 fastest_intervention 内的对象的键。
    • 这是否与用 C++ 制作的数组相同,只是看起来略有不同。
    • 我不懂 C++,但据我了解,PHP、Java 和 C++ 以非常相似的方式处理变量、数组和对象。查看我最近的编辑,以获得更易于阅读的父子层次结构的可视化。也许这将有助于使整个业务的正面或反面。
    • 非常感谢我现在可以清楚地看到嵌套。所以它是一个包含变量和对象的数组,其中一些对象中包含数组。有点像梦中梦的电影《盗梦空间》哈哈?
    【解决方案3】:

    你不需要在这里使用foreach,但你不能只使用print $array

    如果你是数组的索引,你可以打印如下内容:

    print 'Key is '.$array['key'].' but index is only'.$array['index'];
    

    【讨论】:

      【解决方案4】:

      您只需使用 [] 访问变量。 print $array['key']

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-09
        • 2021-12-20
        • 2018-07-02
        • 2013-01-12
        • 1970-01-01
        • 2021-07-12
        • 2019-09-17
        • 1970-01-01
        相关资源
        最近更新 更多