Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在foreach函数中输出计数_Php_Arrays - Fatal编程技术网

Php 在foreach函数中输出计数

Php 在foreach函数中输出计数,php,arrays,Php,Arrays,我正在使用SimplePie,但我不知道如何输出循环的计数或键值 这不应该吗 <?php foreach ($feed->get_items() as $item): ?> <?php $i = key($item); echo $i; ?> <?php endforeach; ?> ,还是这个 <?php foreach ($feed->get

我正在使用SimplePie,但我不知道如何输出循环的计数或键值

这不应该吗

<?php foreach ($feed->get_items() as $item): ?>
        <?php
                $i = key($item);
                echo $i;
        ?>
<?php endforeach; ?>
,还是这个

<?php foreach ($feed->get_items() as $item): ?>
        <?php
                $i = count($item);
                echo $i;
        ?>
<?php endforeach; ?>
是否为每个输出一个唯一的数字


uniqid在这种情况下不起作用,因为我在页面上运行了两次循环,并试图根据ID将一个元素列表与另一个元素列表进行匹配。

要获得foreach中的“count”,需要一个额外的变量。如果数组是按顺序索引而不是按关联索引,那么获取密钥是很容易的。以下是一个示例,包括:

$array = array(
  'foo' => 'bar'
);

$i = 0;
foreach ($array as $key => $value)
{
    /*
        code where $i is the 'count' (index) and $key is the associative $key.
    */
    /* $i == 0 */
    /* $key == 'foo' */
    /* $value == 'bar' */
    $i++;
}
上面使用的key$item不起作用,因为您试图获取不再与原始数组关联的值的键。
count$item是子数组$item的计数。

要获取foreach中的“计数”,需要一个额外的变量。如果数组是按顺序索引而不是按关联索引,那么获取密钥是很容易的。以下是一个示例,包括:

$array = array(
  'foo' => 'bar'
);

$i = 0;
foreach ($array as $key => $value)
{
    /*
        code where $i is the 'count' (index) and $key is the associative $key.
    */
    /* $i == 0 */
    /* $key == 'foo' */
    /* $value == 'bar' */
    $i++;
}
上面使用的key$item不起作用,因为您试图获取不再与原始数组关联的值的键。
count$item是子数组$item的计数。

与as一起使用的单个参数被解释为用于存储值而不是键的变量。如果需要该键,则需要按如下方式使用=>:

foreach ($feed->get_items() as $key => $item):
    echo $key;
endforeach

作为旁注,您使用的是数组中的项的键和计数,而不是整个数组,这是无效的。据我所知,即使将密钥应用于整个阵列,也不能保证它能像您期望的那样工作。它用于控制迭代的循环,如。

与as一起使用的单个参数被解释为用于存储值的变量,而不是键。如果需要该键,则需要按如下方式使用=>:

foreach ($feed->get_items() as $key => $item):
    echo $key;
endforeach
作为旁注,您使用的是数组中的项的键和计数,而不是整个数组,这是无效的。据我所知,即使将密钥应用于整个阵列,也不能保证它能像您期望的那样工作。它用于控制迭代的循环,如。

您可以使用该方法

比如:

foreach ($feed->get_items() as $item)
{
    $prev_ids = array('guid1', 'guid2', 'guid3', 'guid4');
    if (in_array($item->get_id(true), $prev_ids))
    {
        echo "This item is already stored.";
    }
    else
    {
        echo "This is a new item!";
    }
}
你可以使用这个方法

比如:

foreach ($feed->get_items() as $item)
{
    $prev_ids = array('guid1', 'guid2', 'guid3', 'guid4');
    if (in_array($item->get_id(true), $prev_ids))
    {
        echo "This item is already stored.";
    }
    else
    {
        echo "This is a new item!";
    }
}

完全正确,除了你给出的关于钥匙的建议看起来有点混乱。OP使用键的方式不仅会产生意想不到的结果,而且完全是错误的。@Mike Sherov很好,我没有注意到它使用了$item。答案更新了。我明白了,谢谢你的解释。我想让我不高兴的是键和计数接受数组作为参数。我以为$item是我的数组,但我想我并没有这样定义它-正确吗?@jaasum correct。当您在as之后使用$item时,这意味着它在每次循环迭代中都被设置为数组中的下一个项目。除非先将整个数组存储到单独的变量中,否则只能通过$feed->get_items访问它。@Justin Spahr Summers有意义。只是出于好奇,我是如何从$feed->get_items中获取阵列的?这仅仅取决于脚本作者设置了什么吗?完全正确,除了您给出的关于键的建议似乎有点混乱之外。OP使用键的方式不仅会产生意想不到的结果,而且完全是错误的。@Mike Sherov很好,我没有注意到它使用了$item。答案更新了。我明白了,谢谢你的解释。我想让我不高兴的是键和计数接受数组作为参数。我以为$item是我的数组,但我想我并没有这样定义它-正确吗?@jaasum correct。当您在as之后使用$item时,这意味着它在每次循环迭代中都被设置为数组中的下一个项目。除非先将整个数组存储到单独的变量中,否则只能通过$feed->get_items访问它。@Justin Spahr Summers有意义。只是出于好奇,我是如何从$feed->get_items中获取阵列的?这是否取决于脚本作者设置的内容?是否会从1开始而不是从0开始?$i仍然从0开始。如果您愿意,可以使用单词对数组进行“索引”。请参阅更新的示例。谢谢!这是非常有用的。它从1开始而不是从0开始吗?$i仍然从0开始。如果您愿意,可以使用单词对数组进行“索引”。请参阅更新的示例。谢谢!这很有帮助。