在PHP中foreach的语法

时间:2014-04-03 11:07:20

标签: php foreach

这种语法在php中意味着什么

foreach ( $meta as $t => $data )

$ t => $ data表示上述内容。

因为foreach基本上是(来自w3school的例子)

  <?php
  $colors = array("red","green","blue","yellow");
  foreach ($colors as $value)
    {
    echo "$value <br>";
    }
  ?> 

以上情况$ value代表$t => $data

$colors代表$meta

数组$ meta如下

    $meta = Array(
    'facebook' => Array(
      'title'   => 'og:title',
      'type'   => 'og:type',
      'url'   => 'og:url',
      'thumbnail'  => 'og:image',
      'width'   => 'og:image:width',
      'height'  => 'og:image:height',
      'sitename'  => 'og:site_name',
      'key'   => 'fb:admins',
      'description' => 'og:description'
    ),
    'twitter' => Array(
      'card'   => 'twitter:card',
      'description' => 'twitter:description',
    )
      );

那么什么是$ t,什么是$ data

如果我想获得&#39; title&#39;在&#39; facebook&#39;作为一个单独的密钥如何做到这一点。即。将

  $t => $data => $final work

  $t = facebook or twitter
  $data = title etc
  $final = og:title etc

6 个答案:

答案 0 :(得分:2)

如果您使用foreach,它会循环播放数组的项目。基本语法是:

foreach ($array as $item) {
  // first loop:  $item=foo
  // second loop: $item=bar
}

您可以使用扩展语法

foreach ($array as $key => $item) {}

允许您在$key变量中获取项目键。例如:

$array = array('foo', 'bar');
foreach ($array as $key => $item) {
  // first loop:  $key=0, $item=foo
  // second loop: $key=1, $item=bar
}

$array不包含密钥,因此在$key变量中您有数字(以0开头)。

如果定义了键(关联数组),$key将采用定义的键值:

$array = array('key1' => 'foo', 'key2' => 'bar');
foreach ($array as $key => $item) {
  // first loop:  $key=key1, $item=foo
  // second loop: $key=key2, $item=bar
}

答案 1 :(得分:1)

$ t =&gt; $ data表示

$ t - 索引(关键)

$ data - value

答案 2 :(得分:1)

阅读此http://www.php.net/manual/en/control-structures.foreach.php,关注示例。

/* foreach example 3: key and value */

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "\$a[$k] => $v.\n";
}

/* foreach example 4: multi-dimensional arrays */
$a = array();
$a[0][0] = "a";
$a[0][1] = "b";
$a[1][0] = "y";
$a[1][1] = "z";

foreach ($a as $v1) {
    foreach ($v1 as $v2) {
        echo "$v2\n";
    }
}
PS:如果你使用php编写官方手册而不是'all-around-sites'。

<强> ADDED

$a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => 17
);

foreach ($a as $k => $v) {
    echo "$k => $v";
    // will show
    // one => 1two => 2three => 3
}

foreach ($a as $v) {
    echo "$v";
    // will show 
    // 12317
}

所以,如果我们使用$ k(在我们的foreach()中),我们就有'key'这个名字。在$ v中,我们总是有'价值'。

<强> ADDED

    $meta = Array(
        'facebook' => Array(
            'title' => 'og:title',
            'type' => 'og:type',
            'url' => 'og:url',
            'thumbnail' => 'og:image',
            'width' => 'og:image:width',
            'height' => 'og:image:height',
            'sitename' => 'og:site_name',
            'key' => 'fb:admins',
            'description' => 'og:description'
        ),
        'twitter' => Array(
            'card' => 'twitter:card',
            'description' => 'twitter:description',
        )
    );

    foreach ($meta as $sKey => $aValue) {
        // $sKey == 'facebook'
        // $aValue = array()
        // $aValue['title'] == 'og:title' 

        foreach ($aValue as $sKeyInner => $sValue) {
            // $sKeyInner == 'title'
            // $sValue == 'og:title'
        }
    }

就是这样,我放弃了。 XD

答案 3 :(得分:0)

此语法允许您迭代所有项目,并且还可以使用数组的键。

看一下the documentation,这个语法最好解释如下:

foreach (array_expression as $key => $value)
    statement
  

... [此语法]还会在每次迭代时将当前元素的键分配给$ key变量。

在您的示例中,键将是数组中的元素索引。

答案 4 :(得分:0)

在您的示例中,它表示$ meta是一个数组,$ t是数组键,$ data是键的值。 例如,$ t可以是3和$ data&#34;黄色&#34;

答案 5 :(得分:0)

php中有两种类型的数组

  1. 普通数组
  2. 关联数组
  3. 对于普通数组:

     <?php
          $colors = array("red","green","blue","yellow");
          foreach ($colors as $value)
            {
            echo "$value";   // prints  red,green...
            }
          ?> 
    

    对于关联数组:

    例如:数组([0] =&gt;数组([Bookcode] =&gt; 124 [Bookname] =&gt; asd)              [1] =&gt;数组([Bookcode] =&gt; 125 [Bookname] =&gt; asd)            )

    <?php 
    foreach($arr as $key => $val)
            {
               echo $key;             //prints--> 124
               echo $val;             //prints -->asd
            }
    
    ?>