PHP foreach输出键值,他是从0开始的,我想他加1输出该怎么写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP foreach输出键值,他是从0开始的,我想他加1输出该怎么写相关的知识,希望对你有一定的参考价值。

不是只输出1,是想让他从1开始输出,一直到15的,会的大侠帮忙贴点代码

需要准备的材料分别是:电脑、php编辑器、浏览器。

1、首先,打开php编辑器,新建php文件,例如:index.php。

2、在index.php中,输入代码:

$a = [5,6,7,3,5,7,8];
foreach ($a as $k => $v)
echo $k + 1;

3、浏览器运行index.php页面,此时打印出的键值都是加1之后的。

参考技术A foreach前先给个变量
$i = 0;
foreach()
if ($i>0)
//这里放要的

$i++;


如果下标是数字或没定义的话就直接判断$k是否大于0就可以了
foreach($arr as $k=>$v)
if ($k>0)
//这里放要的

参考技术B

如果你的循环次数是固定的,比如你要循环15次的话,建议可以用for函数来循环。

<?php 
for ($x=1; $x<=15; $x++)  //从1开始,循环15次
  echo $x;
 
?>

如果一定要使用foreach函数的话,可以这样写

<?php
foreach($arr as $key=>$v) 
  $key++;
  echo $key."<br>";

?>

for循环函数

语法:

for (init counter;  test counter;  increment counter)
 code to be executed;

参数:

init counter:初始化循环计数器的值

test counter:评估每个循环迭代。如果值为 TRUE,继续循环。如果它的值为 FALSE,循环结束。

increment counter:增加循环计数器的值

参考技术C 直接在键值的输出结果上加1不行吗?追问

关键是我不会写,没学过php
你把代码写一下呗,谢谢了

追答

foreach($arr as $k=>$v)      echo "$k+1";    $arr就是数组了 $k键值 $v就是值

追问

'.$key.' 我的是个这,那+1改写到那里?

追答

$key+1 就可以了

追问

这样写的话直接输出 $key+1 5555555555555

追答

echo "$key+1"; 再试试看 把你的具体代码发一下

追问

NO.'.$key.' 序号需要从1开始,但是现在是0,如果加if的话,直接都什么都不显示了。

追答

在前面增加一个变量 $k=$key+1;NO.'.$k.' 试试

追问

OK了,太谢谢你了!!!!

本回答被提问者采纳

PHP Mysql PDO查询来自foreach存储的多个值以供输出

【中文标题】PHP Mysql PDO查询来自foreach存储的多个值以供输出【英文标题】:PHP Mysql PDO query from foreach multiple values stored for output 【发布时间】:2015-08-18 02:53:42 【问题描述】:

今天我一直在搜索如何存储查询中的不同值,该查询被注入了 4 次不同类别。结果正如我想要的那样,我得到了这些值,但是当我返回它们时,我只得到最后一个查询作为结果。 我想知道这个问题的好结果是什么

public function setMaxId() 
        $categorys = $this->getCategorys();
        foreach ($categorys as $category) 
            $sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category =  '" . $category['bcc_data_category_name'] . "'");
            $sth->execute();
            $id = $sth->fetchAll();         
            $maxId = $id[0]['MAX(data_id)'];
            var_dump($maxId);
        
    

Var_dump:

string '22' (length=2)

string '35' (length=2)

string '34' (length=2)

string '29' (length=2)

【问题讨论】:

【参考方案1】:

看起来你每次在循环中都覆盖了最大 id,如果你想全部返回它们,它会是这样的:

$maxIds = [];
foreach ($categorys as $category) 
    $sth = $this->conn->prepare("SELECT MAX(data_id) FROM bcc_data WHERE data_category =  '" . $category['bcc_data_category_name'] . "'");
    $sth->execute();
    $id = $sth->fetchAll();         
    $maxIds[] = $id[0]['MAX(data_id)'];

return $maxIds; //or return max($maxIds) if you just want the single max

【讨论】:

效果很好,它们现在返回一个值,我可以单独调用它们。谢谢

以上是关于PHP foreach输出键值,他是从0开始的,我想他加1输出该怎么写的主要内容,如果未能解决你的问题,请参考以下文章

php中 怎样用for循环输出数组内容 我用C语言的方法行不通!

PHP foreach() 只输出数组的最后一项

php怎么输出json数组?

php页面数组循环问题

PHP获取数组中重复值的键值

php 取出数组 某一个键名和键值