Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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代码只从数据库中的两位数ID中提取一位数?_Php_Mysqli_Foreach - Fatal编程技术网

为什么php代码只从数据库中的两位数ID中提取一位数?

为什么php代码只从数据库中的两位数ID中提取一位数?,php,mysqli,foreach,Php,Mysqli,Foreach,假设我的数据库表有11个条目,那么11个ID从1到11。 以下可能会回显12345678911-它会切断10和11的最后一位。我想知道为什么,最重要的是:我怎样才能解决这个问题 foreach($resultholeIdVonAutorenWerke as $row) { $autor_werk_id = $row['id']; $test .= "$autor_werk_id[0]"; } echo $test 因为您只访问第一个字符$autor\u werk\u id是

假设我的数据库表有11个条目,那么11个ID从1到11。 以下可能会回显
12345678911
-它会切断
10
11
的最后一位。我想知道为什么,最重要的是:我怎样才能解决这个问题

foreach($resultholeIdVonAutorenWerke as $row) {
    $autor_werk_id = $row['id'];

    $test .= "$autor_werk_id[0]";
}

echo $test

因为您只访问第一个字符
$autor\u werk\u id
是字符串,不是数组。在字符串上使用数组语法时,它将返回从该字符串中指定的字符。在您的例子中,第一个字符是因为您使用了零键

这是:

删除这部分代码,它就可以正常工作了:

foreach($resultholeIdVonAutorenWerke as $row) {
   $autor_werk_id = $row['id'];

   $test .= $autor_werk_id; 
}

echo $test;

您可以将结果内爆为字符串,而不是循环

$ids = array_column($resultholeIdVonAutorenWerke, "id");
echo implode("", $ids); //1234567891011

Array\u column从数组中抓取一列,并使用胶水将数组项粘在一起(在本例中为“”,没有任何内容)

,因为
$autor\u werk\u id[0]
。您获取字符串的第一个字符。他以数组的形式访问id,只获取第一个字符(因此使用1个整数id,但仅此而已)-您的答案与他的问题无关。@Kaylined是的。这是一个更有效的方法来做同样的事情OP。我知道OP做错了什么,但在我看来,仅仅解决问题是“懒惰的”。给出一个更好的答案是你应该如何回答这样的问题。请随意取消你的否决票。我的答案很有用,因为它能以更好的方式解决问题。@Kaylined on meta您可以在这里阅读:
$ids = array_column($resultholeIdVonAutorenWerke, "id");
echo implode("", $ids); //1234567891011