Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PHP值范围创建二维数组_Php_Arrays - Fatal编程技术网

从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