Php 如何对数组中的最后一项(从mysql\u fetch\u数组)执行不同的操作?
我试图确保逗号在除最后一个项目之外的所有项目后面-我试图找出如何计算变量列表的最后一个项目。我决定尝试使用count$variablename,但它似乎不起作用 我的语法有问题吗Php 如何对数组中的最后一项(从mysql\u fetch\u数组)执行不同的操作?,php,mysql,Php,Mysql,我试图确保逗号在除最后一个项目之外的所有项目后面-我试图找出如何计算变量列表的最后一个项目。我决定尝试使用count$variablename,但它似乎不起作用 我的语法有问题吗 $servicearray = mysql_query("select serv_id from org_serv_xref where org_id='".$org_id."'"); $servi = 0; while ($servicearrayrow = mysql_fetch_array($servic
$servicearray = mysql_query("select serv_id from org_serv_xref where org_id='".$org_id."'");
$servi = 0;
while ($servicearrayrow = mysql_fetch_array($servicearray)) {
$servdescarray = mysql_query("select serv_desc from service where serv_id='".$servicearrayrow['serv_id']."'");
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
if ($servi < 5 OR $servi < count($servdescarrayrow)) {
ECHO $servdescarrayrow['serv_desc'].",";
$servi++;
}
else if ($servi == 5 OR $servi == count($servdescarrayrow)) {
echo $servdescarrayrow['serv_desc'];
$servi++;
}
else {
$servi = 0;
break 2;
}
}
}
因为你在0开始$servi。它将始终小于数组的计数。如果从1开始,它应该按照您期望的方式工作。将查询更改为
$servicearray = mysql_query("select GROUP_CONCAT(serv_id) from org_serv_xref where org_id='".$org_id."'");
现在,sql为您构建了一个漂亮的逗号分隔列表:尽我所能,您尝试这样做,尽管我可能完全错了:
// Initialise vars
$lastid = '';
$items = array();
// Do the query
$query = "SELECT serv_desc, serv_id
FROM service
WHERE serv_id IN (
SELECT serv_id
FROM org_serv_xref
WHERE org_id='".$org_id."'
)
ORDER BY serv_id";
$servdescarray = mysql_query($query);
while ($servdescarrayrow = mysql_fetch_assoc($servdescarray)) {
// We've reached the next ID, echo the result of the last one.
if ($lastid != $servdescarrayrow['serv_id']) {
$lastid = $servdescarrayrow['serv_id'];
if (count($items)) {
echo implode(',',$items);
$items = array();
}
}
if (count($items) == 5) { // We don't want more than 5 items
continue;
} else { // Add an item to the results
$items[$servdescarrayrow['serv_desc']];
}
}
// Make sure we get the last one
if (count($items)) {
echo implode(',',$items);
}
我没有看到其他真正的方法。你在问一个X-Y问题。真正的问题是如何用逗号连接元素数组,并使结果成为字符串?还有一些内置函数,在PHP中很糟糕地命名。此外,这段代码容易受到SQL注入攻击。稍后我将插入代码以防止攻击。由于某种原因,“内爆”似乎不起作用,在结尾处加了一个逗号,这只是我还是我第十次看到这段代码?