为什么php代码只从数据库中的两位数ID中提取一位数?
假设我的数据库表有11个条目,那么11个ID从1到11。 以下可能会回显为什么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是
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