我有一个数组,其中包含特定文章的类别($ link_cat).然后我使用mysql_fetch_array打印出带有复选框的列表中的所有可用类别.虽然它正在这样做,我希望它将它的值与其他数组的值进行比较.如果匹配,则表示其中一个类别适用于本文,并且应该打印出一行代码以应用checked属性.大!除了它没有工作= [
while ( $row = mysqli_fetch_array($results, MYSQLI_ASSOC) ){
$cat[$i] = $row['category'];
$cat_id[$i] = $row['cat_id'];
echo '<li><input type="checkbox" ';
$catCount = count($link_cat);
for ($ct = 0; $ct < $catCount; $ct++){
if ($cat_id[$i] == $link_cat[$ct]){
echo 'checked="checked" ';
}
}
echo 'name="' . $cat_id[$i] . '" />' . $cat[$i] . '</li>';
$i++;
}
Run Code Online (Sandbox Code Playgroud)
我以前从未真正做过嵌套循环(我怀疑这是问题所在).
问题似乎是,当这个运行时,$ link_cat [0]将在其中检查第一个类别 - 不会注册.它出现空白.在for循环中打印出变量证实了这一点.任何其他[1] [2]等,都没问题.它只是[0].但为什么?它似乎没有任何意义.我知道那里有东西,因为我打印了数组的内容,因为我填充它,只是为了检查.然而,它不只是在循环中显示.有任何想法吗?
我有一个红宝石哈希:
VALS = { :one => "One", :two => "Two" }
Run Code Online (Sandbox Code Playgroud)
和一个数组:
array2 = ["hello", "world", "One"]
Run Code Online (Sandbox Code Playgroud)
问题:如何填充新的array1,以便它只引入array2中与VALS中的值完全匹配的任何值?
例如,我试过:
array2.each_with_index do |e,i|
array1 << e if VALS[i] ~= e
end
Run Code Online (Sandbox Code Playgroud)
和其他东西一起,没有工作.菜鸟.
谢谢
辉煌!但是我尝试过:
p array.select { |i| hash.has_value? i ? array[i+1] : "foo"}
Run Code Online (Sandbox Code Playgroud)
我有一个无法转换fixnum错误.我肯定错过了什么.
这是我的功能:
function loop($id){
unset($result, $sql, $query);
$sql = " SELECT parent_id FROM page_entries WHERE id = '$id' ";
$query = mysql_query ( $sql )or die(mysql_error());
$result = mysql_fetch_assoc ( $query )or die(mysql_error());
if ( $result['parent_id'] != 0 ) {
echo $result['parent_id']."... looping<br>";
loop($result['parent_id']);
} else {
echo $result['parent_id']."... done loop";
return $result['parent_id'];
}
}
echo loop('2');
Run Code Online (Sandbox Code Playgroud)
我正在回应parent_id进行测试.这是输出到浏览器的内容:
1 ...循环
0 ...完成循环
在我不确定发生了什么的情况下echo loop('2'),return $result['id']如果我注释掉echo函数中的行,则不会回应任何内容.我已经尝试通过改变返回来测试,但return 'foo';仍然没有.
有任何想法吗?
伙计们,
我已经辞职以解决这个问题,但我想检查Python是否真的按预期运行.
在示例中,"sample.txt"是任何读取和解析的多行文本文件.
try:
file=open('sample.txt','r')
for line in file:
(some action here)
except:
print "Couldn't open file"
file.close()
Run Code Online (Sandbox Code Playgroud)
我观察到的动作是打开"sample.txt"并处理第一行,然后逻辑进入"except"子句.
WAD还是这个bug?
我是Python的新手,我正在尝试通过列表列表.
说我有:
myList = [[1,2,3,4],[10,11,12,13],[29,28,27,26]]
Run Code Online (Sandbox Code Playgroud)
以及一个名为myFunction的函数
我可以写:
for x in myList:
for y in x:
myFunction(y)
Run Code Online (Sandbox Code Playgroud)
但是,这只会在所有子列表中的每个项目上调用myFunction.当我完成每个子列表中的所有项目时,我将如何合并我可以调用的内容(例如,我将调用1,2,3和4,然后循环将意识到它位于子列表的末尾,我可以称该子列表).
非常感谢!
我有这样的情况,我需要循环遍历两个对象列表并找到相等,然后循环其字段并更改一些属性.看起来像这样
for new_product in products_and_articles['products']:
for old_product in products_for_update:
if new_product.article == old_product.article:
for old_field in old_product._meta.get_all_field_names():
for new_field in new_product._meta.get_all_field_names():
if old_field == new_field and old_field != 'id' and old_field != 'slug':
setattr(old_product, old_field, getattr(new_product, old_field))
Run Code Online (Sandbox Code Playgroud)
显然,这远非好或甚至不可接受.所以我正在寻求建议如何避免这么多循环并增强算法
#include <stdio.h>
int main()
{
int i = 1, j = 1;
for(i; i<=5; i++)
{
for(j; j<=5; j++)
{
printf("%d - %d\n",i, j);
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码只运行一次外部for循环.输出是:
1 - 1
1 - 2
1 - 3
1 - 4
1 - 5
Run Code Online (Sandbox Code Playgroud)
但是当我进行以下更改时,printfs会打印预期的25次.
for(i=1; i<=5; i++)
{
for(j=1; j<=5; j++)
{
printf("%d - %d\n",i, j);
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下这种行为吗?
总蟒蛇新秀在这里.我希望迭代三个列表,其中前两个应该以所有可能的方式重新组合,而只有一个值附加到第三个列表的每个组合.到目前为止,我得到了:
import itertools
list1 = [1,2,3]
list2 = [1,2,3]
list3 = [1,2,3,4,5,6,7,8,9]
for x, y, in itertools.product(list1, list2):
print x, y, list3
Run Code Online (Sandbox Code Playgroud)
返回:
1 1 [1, 2, 3, 4, 5, 6, 7, 8, 9]
1 2 [1, 2, 3, 4, 5, 6, 7, 8, 9]
1 3 [1, 2, 3, 4, 5, 6, 7, 8, 9]
2 1 [1, 2, 3, 4, 5, 6, 7, 8, 9]
2 2 [1, 2, 3, 4, 5, 6, 7, 8, 9]
2 3 …Run Code Online (Sandbox Code Playgroud) 如果这是我的目标:
var obj = {
bakery1: {
small: {
name: "Small cookie",
price: 0.75;
}
large: {
name: "Large cookie",
price: 3.00;
}
}
bakery2: {
small: {
name: "Small cookie",
price: 1.00;
}
large: {
name: "Large cookie",
price: 4.00;
}
}
};
Run Code Online (Sandbox Code Playgroud)
我将如何制作一个将所有价格打印到控制台的循环?
并且在打印此值时,是否有办法跟踪名称?
例如,如果输出为3.00,我将如何创建一个函数,该函数的名称与3.00价格一致?
提前致谢!
我想,使用for循环,遍历每个字符串并依次输出每个字符.
String a = "apple";
String b = "class";
for (int i = 0; i < a.length() ; i++) { // - 1 because 0 = 1
System.out.print(a.charAt(i));
for (int j = 0; j < b.length(); j ++) {
System.out.print(b.charAt(j));
}
}
Run Code Online (Sandbox Code Playgroud)
我正在努力与内循环.
目前我的输出如下:
AClasspClasspClasslClasseClass
Run Code Online (Sandbox Code Playgroud)
但是,我想实现以下目标:
acplpalses
Run Code Online (Sandbox Code Playgroud)
扩展问题:
如何正常输出一个字符串而另一个正常输出?
目前的尝试:
for (int i = a.length() - 1; i >= 0; i--) {
System.out.println(a.charAt(i));
for (int j = 0; j < b.length(); j ++) {
System.out.println(b.charAt(j));
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这只是输出如上所述,只是以"Apple"的相反顺序输出,格式与上一个相同:
eclasslclasspclasspclassaclass
Run Code Online (Sandbox Code Playgroud) nested-loops ×10
python ×4
for-loop ×3
loops ×3
php ×2
arrays ×1
c ×1
django ×1
function ×1
hash ×1
java ×1
javascript ×1
list ×1
mysql ×1
nested ×1
nested-lists ×1
object ×1
performance ×1
python-2.7 ×1
ruby ×1
scope ×1