从PHP值范围创建二维数组
基本上,我正在尝试创建以下数组从PHP值范围创建二维数组,php,arrays,Php,Arrays,基本上,我正在尝试创建以下数组 $foo = array( 1 => array( 'id' => '1', 'value' => '1', ), 2 => array( 'id' => '2', 'value' => '2', ) ); 我现在是这样做的 for($i = $rangeMin; $i <= $ran
$foo = array(
1 => array(
'id' => '1',
'value' => '1',
),
2 => array(
'id' => '2',
'value' => '2',
)
);
我现在是这样做的
for($i = $rangeMin; $i <= $rangeMax; $i++) {
array_push($foo, array('id'=> $i, 'value' => $i));
}
for($i=$rangeMin;$i$i,'value'=>$i));
}
虽然这是可行的,但有什么方法可以改进这段代码吗?或者PHP中是否已经有任何预构建的功能可以实现这一点?如果您不想使用该功能,请尝试使用
for($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[] = array('id'=> $i, 'value' => $i);
}
如果不想使用函数,请尝试使用
for($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[] = array('id'=> $i, 'value' => $i);
}
您可以尝试以下方法:
for ($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[] = array('id'=> $i, 'value' => $i);
}
for($i=$rangeMin;$i$i,'value'=>$i);
}
我们正在用非常清晰的$foo[]
替换array\u push
。您可以尝试:
for ($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[] = array('id'=> $i, 'value' => $i);
}
for($i=$rangeMin;$i$i,'value'=>$i);
}
我们正在用
$foo[]
替换array\u push
,这一点非常清楚。我不太清楚你为什么要推它们。每个新条目都应该位于数组的末尾。它们用简单的整数进行迭代。那么为什么不简单地用$foo[]=array('id'=>1,'value'=>1)添加它们呢 我不太清楚你为什么推它们。每个新条目都应该位于数组的末尾。它们用简单的整数进行迭代。那么为什么不简单地用$foo[]=array('id'=>1,'value'=>1)添加它们呢 $foo=array();
对于($i=$rangeMin;$i$i,'value'=>$i);
}
或者,如果您的密钥始终是数组中对的索引,请执行以下操作:
$foo = array();
for($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[$i] = $i;
}
$foo=array();
对于($i=$rangeMin;$i$foo=array();
对于($i=$rangeMin;$i$i,'value'=>$i);
}
或者,如果您的密钥始终是数组中对的索引,请执行以下操作:
$foo = array();
for($i = $rangeMin; $i <= $rangeMax; $i++) {
$foo[$i] = $i;
}
$foo=array();
对于($i=$rangeMin;$i使用
在for
循环中,调用函数不会产生任何开销,因此效率更高。使用
在for
循环中,调用函数不会产生任何开销,因此效率会更高。如果您认为数组的键号很重要,也许可以这样写:
$foo = array();
for($i = $min; $i <= $max; $i++)
{
$foo[$i] = array(
'id' => $i,
'value' => $i
);
}
$foo=array();
对于($i=$min;$i$i,
“值”=>$i
);
}
如果你认为数组的键号很重要,也许你可以这样写:
$foo = array();
for($i = $min; $i <= $max; $i++)
{
$foo[$i] = array(
'id' => $i,
'value' => $i
);
}
$foo=array();
对于($i=$min;$i$i,
“值”=>$i
);
}
如果您喜欢单行程序,您可以选择:
$foo = array_map("array_fill_keys", array_fill(0, $rangeMax-$rangeMin+1, array("id", "value")), range($rangeMin, $rangeMax));
除此之外,我想不出任何PHP中的预构建功能可以让您的任务更轻松。如果您喜欢一行程序,您可以选择:
$foo = array_map("array_fill_keys", array_fill(0, $rangeMax-$rangeMin+1, array("id", "value")), range($rangeMin, $rangeMax));
除此之外,我想不出任何PHP中的预构建功能可以让您的任务更轻松。您还可以:
for ($foo=$rangeMin; $foo < $rangeMax; $foo++) {
$bar[] = array("id"=>$foo,"value"=>$foo);
}
这样,您可以将关联索引指定给值,甚至可以排除同一索引的重复项。
foeach将帮助您通过数组的每个索引。
祝你一天愉快,玛丽!!你也可以做:
for ($foo=$rangeMin; $foo < $rangeMax; $foo++) {
$bar[] = array("id"=>$foo,"value"=>$foo);
}
这样,您可以将关联索引指定给值,甚至可以排除同一索引的重复项。
foeach将帮助您通过数组的每个索引。
祝你过得愉快玛丽!!可能是这样的..这是两行代码
while($i<10)
$arr[++$i]=array('id'=>++$k,'value'=>++$j);
while($i++$k,'value'=>++$j);
可能是这样的..它是两行代码
while($i<10)
$arr[++$i]=array('id'=>++$k,'value'=>++$j);
while($i++$k,'value'=>++$j);
我看不出这段代码有什么意义,但您想改进什么?请注意,数组的'id'
部分通常是无用的,因为您可以使用foreach($array as$key=>$value){$id=$key+$rangeMin;}获取密钥
或其他什么。如果你想得到更好的建议,就给出一个具体的场景。仅此而已。你可以玩code golf,减少一些事情,但这是你能做到的。当然,如果每个子数组中的所有3个值都是相同的,为什么还要麻烦生成子数组呢?$foo=range($rangeMin,$rangeMax)
将在更少的空间内为您提供相同的值。第一个索引将是==0,而不是1为什么您要这样做?我看不出这段代码有什么意义,但您希望改进什么?请注意,数组的'id'
部分通常是无用的,因为您可以使用foreach($array as$key=>$value)获取密钥{$id=$key+$rangeMin;}
或者其他什么。如果你想得到更好的建议,就给出一个特定的场景。就这样。你可以玩代码高尔夫,减少一些事情,但这是你能做的最好的。当然,如果每个子数组中的所有3个值都是相同的,为什么还要麻烦生成子数组呢?$foo=range($rangeMin,$rangeMax)
将在更少的空间内为您提供相同的值。第一个索引将为==0,而不是1为什么您要这样做?我仍然不明白为什么您要对每个索引和值使用相同的值…我的大脑已重新启动。:-I仍然不明白为什么您要对每个索引和值使用相同的值…我的大脑已重新启动。:-S