我如何用数组计算for循环中的多行?当新行进入 mysql 数据库进行循环时,将新行计为 0 当两个新行进入 mysql 数据库进行循环时,将两行都计为 1 ??我不知道为什么 for loop escape first row count start from second row? 还有我如何使用数组进行多行 session ??
Function.php & Mysql查询
function get_wid($id){
$result=mysql_query("SELECT id AS wid FROM mywishlist where pid='$id'")
or die("Id Problem"."<br/><br/>".mysql_error());
$results= array();
while($row=mysql_fetch_array($result)){
$results[] = $row['wid'];
}
return $results;
}
我调用的页面函数 $wid=get_wid($id);
$wid=get_wid($id);
$max1= count($wid);
for($i>0; $i<$max1; $i++)
{
$wid1=$wid [$i].'<br />';
$_SESSION['wid2']=$wid1;
echo $_SESSION['wid2'];
}
现在我正在使用这个函数,这个函数没有回显或打印计数 0 值未显示,但值在计数 1 之后显示?
function get_wid($id){
$result=mysql_query("SELECT id AS wid FROM mywishlist where pid='$id'") or die("Id Problem"."<br/><br/>".mysql_error());
$results= array();
$i=1; // add the new line
while($row=mysql_fetch_array($result)){
$results[$i] = $row['wid'];
$i++;
}
return $results;
}
$wid=get_wid($id);
$max1= count($wid);
for($i=1; $i<=$max1; $i++) // changes made here
{
$wid1=$wid [$i].'<br />';
$_SESSION['wid2']=$wid1;
echo $_SESSION['wid2'];
}
最佳答案
正如您在“我正在调用 $wid=get_wid($id); 的页面函数”中指出的那样:
for($i>0; $i<$max1; $i++)
{
$wid1=$wid [$i].'<br />';
$_SESSION['wid2']=$wid1;
echo $_SESSION['wid2'];
}
$i>0 应该是 $i=0
我确定这只是一个错字,但您未能声明迭代的开始,这就是为什么它只在第一次之后才开始处理的原因。我个人会按照标准让一切从 0 开始。
随便翻翻我也可以告诉你这一段:
$results=array();
$i=1; // add the new line
while($row=mysql_fetch_array($result)){
$results[$i] = $row['wid'];
$i++;
}
会好很多:
$results=array();
while($row=mysql_fetch_array($result)){
$results[] = $row['wid'];
}
这会让它更紧。另一个“整洁”的技巧是将“_arr”添加到所有数组变量,以便您知道何时引用字符串或数组,例如
while($row=mysql_fetch_array($result)){
$results_arr[] = $row['wid'];
}
虽然我不确切地知道你想要实现什么,但我可以说你应该使用 foreach 来循环 $wid。如前所述,当迭代从 0 开始时,一切都会变得更容易,因为您可以这样做:
$wid=get_wid($id);
foreach($wid as $newWid) // changes made here
{
$_SESSION['wid2']=$newWid.'<br />';
echo $_SESSION['wid2'];
}
如果您想获取任何索引或特定值,您可以使用 array_keys 之类的东西, array_search等等。最后,就像您对函数“get_wid”所做的那样,我会从一个函数中调用其他代码。以下是我总共要做的事情:
function get_wid($id){
$result=mysql_query("SELECT id AS wid FROM mywishlist where pid='$id'") or die("Id Problem"."<br/><br/>".mysql_error());
$results_arr= array();
while($row=mysql_fetch_array($result)){
$results_arr[] = $row['wid'];
}
return $results_arr;
}
function sessionWid($id) {
$wid_arr=get_wid($id);
foreach($wid_arr as $wid) // changes made here
{
$_SESSION['wid2']=$wid.'<br />';
echo $_SESSION['wid2'];
}
// call sessionWid($id) where you want
sessionWid($id);
我本来打算把它留在那里,但不知道你为什么要分页 - <br /> - 在你的 session 中。你知道如果你想在每个数组值之间分页,你可以像这样输出它:
echo implode('<br />',get_wid($id));
通过保持事物清洁,您肯定可以节省时间,避免可能致命的小错误!_g
关于php - 我如何用数组计算for循环中的多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15427869/
我有多个ActiveRecord子类Item的实例数组,我需要根据最早的事件循环打印。在这种情况下,我需要打印付款和维护日期,如下所示:ItemAmaintenancerequiredin5daysItemBpaymentrequiredin6daysItemApaymentrequiredin7daysItemBmaintenancerequiredin8days我目前有两个查询,用于查找maintenance和payment项目(非排他性查询),并输出如下内容:paymentrequiredin...maintenancerequiredin...有什么方法可以改善上述(丑陋的)代
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我正在使用puppet为ruby程序提供一组常量。我需要提供一组主机名,我的程序将对其进行迭代。在我之前使用的bash脚本中,我只是将它作为一个puppet变量hosts=>"host1,host2"我将其提供给bash脚本作为HOSTS=显然这对ruby不太适用——我需要它的格式hosts=["host1","host2"]自从phosts和putsmy_array.inspect提供输出["host1","host2"]我希望使用其中之一。不幸的是,我终其一生都无法弄清楚如何让它发挥作用。我尝试了以下各项:我发现某处他们指出我需要在函数调用前放置“function_”……这
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
这个问题在这里已经有了答案:Checktoseeifanarrayisalreadysorted?(8个答案)关闭9年前。我只是想知道是否有办法检查数组是否在增加?这是我的解决方案,但我正在寻找更漂亮的方法:n=-1@arr.flatten.each{|e|returnfalseife
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
这可能是个愚蠢的问题。但是,我是一个新手......你怎么能在交互式rubyshell中有多行代码?好像你只能有一条长线。按回车键运行代码。无论如何我可以在不运行代码的情况下跳到下一行吗?再次抱歉,如果这是一个愚蠢的问题。谢谢。 最佳答案 这是一个例子:2.1.2:053>a=1=>12.1.2:054>b=2=>22.1.2:055>a+b=>32.1.2:056>ifa>b#Thecode‘if..."startsthedefinitionoftheconditionalstatement.2.1.2:057?>puts"f
我有一个这样的哈希数组:[{:foo=>2,:date=>Sat,01Sep2014},{:foo2=>2,:date=>Sat,02Sep2014},{:foo3=>3,:date=>Sat,01Sep2014},{:foo4=>4,:date=>Sat,03Sep2014},{:foo5=>5,:date=>Sat,02Sep2014}]如果:date相同,我想合并哈希值。我对上面数组的期望是:[{:foo=>2,:foo3=>3,:date=>Sat,01Sep2014},{:foo2=>2,:foo5=>5:date=>Sat,02Sep2014},{:foo4=>4,:dat
我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作