Php 从foreach数组结果中删除最后一个逗号
我有一个小函数,让我更新通过表单提交的任何表和任何值。这是供个人使用,不需要安全保护。但是我需要从脚本中删除最后一个逗号。首先,代码如下:Php 从foreach数组结果中删除最后一个逗号,php,foreach,Php,Foreach,我有一个小函数,让我更新通过表单提交的任何表和任何值。这是供个人使用,不需要安全保护。但是我需要从脚本中删除最后一个逗号。首先,代码如下: public function updateForm($table, $formValues, $formID) { foreach ($formValues as $key => $val) { $form = "$key = '$val', "; $this->mysqli->query(
public function updateForm($table, $formValues, $formID)
{
foreach ($formValues as $key => $val)
{
$form = "$key = '$val', ";
$this->mysqli->query("UPDATE `$table` SET $form WHERE id = '$formID'");
}
}
如果我提交名为field1
、field2
和field3
的三个字段,其中包含值test1
、test2
和test3
,则$form
如下所示:
field1='test1',field2='test2',field3='test3'
但最后一个逗号必须去掉。我将如何做到这一点?我已经尝试了我能想到的一切,包括rtrim($form,”)代码>-但这也不会从填充的值中删除最后一个逗号
任何朝着正确方向推进都将不胜感激:)首先带来$this->mysqli->query(“更新$table设置$form,其中id='$formID'”代码>在foreach
循环之外
现在,您可以在foreach循环中遍历数组时检查最后一个索引if数组
public function updateForm($table, $formValues, $formID)
{
foreach ($formValues as $key => $val)
{
$last_key = key( array_slice( $array, -1, 1, TRUE ) ); // Checks for array last index
if ('key' == $last_key) {
$form = "$key = '$val', ";
}
else
$form = "$key = '$val' ";
}
$this->mysqli->query("UPDATE `$table` SET $form WHERE id = '$formID'");
}
这将为您提供如下输出
field1 = 'test1', field2 = 'test2', field3 = 'test3'
您也可以使用end()
获取最后一个索引,但是,array\u slice()
比end()更快
使用end()检查最后一个索引
首先带来$this->mysqli->query(“更新$table设置$form,其中id='$formID')代码>在foreach
循环之外
现在,您可以在foreach循环中遍历数组时检查最后一个索引if数组
public function updateForm($table, $formValues, $formID)
{
foreach ($formValues as $key => $val)
{
$last_key = key( array_slice( $array, -1, 1, TRUE ) ); // Checks for array last index
if ('key' == $last_key) {
$form = "$key = '$val', ";
}
else
$form = "$key = '$val' ";
}
$this->mysqli->query("UPDATE `$table` SET $form WHERE id = '$formID'");
}
这将为您提供如下输出
field1 = 'test1', field2 = 'test2', field3 = 'test3'
您也可以使用end()
获取最后一个索引,但是,array\u slice()
比end()更快
使用end()检查最后一个索引
另一种不需要任何计数的方法
<?php
$string = null;
foreach ($array as $key => $value) {
$string && ($string .= ", ");
$string .= "{$key} = '{$value}'";
}
另一种不需要任何计数的方法
<?php
$string = null;
foreach ($array as $key => $value) {
$string && ($string .= ", ");
$string .= "{$key} = '{$value}'";
}
构建一个包含key='val'
字符串的数组。使用。问题解决了。rtrim($form,,')呢?注意空格。Thoronwen,删除了所有逗号:)深色Absol,听起来不错,会尝试的谢谢:DDark Absol,工作得很有魅力,再次感谢:)所有这些方法都比循环慢,因为它们也循环,而且你有函数调用开销。构建一个key='val'
字符串数组。使用。问题解决了。rtrim($form,,')呢?注意空格。Thoronwen,删除了所有逗号:)深色Absol,听起来不错,会尝试的谢谢:DDark Absol,工作得很有魅力,再次感谢:)所有这些方法都比循环慢,因为它们也循环,而且你有函数调用开销。