如何使用for循环在关联数组中插入变量
how to insert variables in associative array using for loop
我想在关联数组中插入两个值,一个作为键,第二个作为值,当我打印该数组时,它应该包含所有 a-k 作为键,0-10 作为它们的对应值。
<?php
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
$countsub1 = array("$z[$i]","$i");
}
print_r($countsub1);
?>
在这里,我只得到数组中变量的最后一个值,但我希望它们全部合而为一。这怎么能做到??
我想要这个 输出:
数组 ( [a] => 0,[b] => 1,[c] => 2,[d] => 3,[e] => 4,[f] => 5.. ......等等)
您没有将其存储到 array
。您正在将其存储到 variable
。这就是为什么它会覆盖最后一个值而你得到最后一个值。试试 -
$countsub1[] = array("$z[$i]","$i");
试试这个:
<?php
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++) {
$countsub1[] = array($z[$i],$i);
}
print_r($countsub1);
?>
您必须使用 $countsub1[]
为数组赋值,因为 $countsub1
将在每个循环中覆盖前一个值。
PS:变量不应像赋值时在循环中那样放在引号内,PHP 可能会将其视为字符串
您一直覆盖 $countsub1
,这就是为什么您只获得最后一个值的原因。
您需要使用以下方法之一将其追加到数组中:
$countsub1[] = array("$z[$i]","$i");
array_push($countsub1, array("$z[$i]","$i"));
在您的代码中,您正在将值分配给变量 hens,如果您想将值插入数组,它会获取最后一个值,请像这样使用
$array=array()
for($i=0;$i<=10;$i++)
{
$array[] = array($z[$i],$i);
}
print_r($array)
$array[] is the method to insert values into the array.and $array is the method to assign value to variable .
that's the reason you are getting only last value as it is overwriting the previous value.
$array[] will store the values into the index like "0,1,2....."
$array will override the values every time in the loop
if you use $array['key'] in the loop it will also do the same job as $array
在一行中你可以使用 array_flip() PHP 函数。
$countsub1 = array_flip($z);
或
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
$countsub1[$z[$i]] = $i;
}
print_r($countsub1);
输出
Array
(
[a] => 0
[b] => 1
[c] => 2
[d] => 3
[e] => 4
[f] => 5
[g] => 6
[h] => 7
[i] => 8
[j] => 9
[k] => 10
)
制作像 OP 这样的关联数组的答案要求:
如果您想要重复的键,下面的代码将起作用,否则我建议您进行数组合并
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
//duplicate keys option
$countsub1[] = array($z[$i] => $i);
//single array with unique keys
$countsub1 = array_merge($countsub1, array($z[$i] => $i));
}
print_r($countsub1);
就像其他人所说的那样,您一直在给 $countsub1
赋值,所以它被覆盖并具有上次赋值的值。您需要 向其附加 。
所以你想做的是翻转 $z
数组的键和值,对吧?如果是这样,则已经为您预定义了一个函数:array_flip
编辑:如果您想手动完成,我建议在下面使用更灵活的代码,它接受 $z
的不同长度:
$countsub1 = array();
foreach ($z as $key => $value) {
$counsub1[$value] = $key;
}
试试这个:
$arr=array();
for($i=0; $i<=10; $i++){
$key =$z[i];
$arr[$key]=$i;
}
我想在关联数组中插入两个值,一个作为键,第二个作为值,当我打印该数组时,它应该包含所有 a-k 作为键,0-10 作为它们的对应值。
<?php
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
$countsub1 = array("$z[$i]","$i");
}
print_r($countsub1);
?>
在这里,我只得到数组中变量的最后一个值,但我希望它们全部合而为一。这怎么能做到??
我想要这个 输出:
数组 ( [a] => 0,[b] => 1,[c] => 2,[d] => 3,[e] => 4,[f] => 5.. ......等等)
您没有将其存储到 array
。您正在将其存储到 variable
。这就是为什么它会覆盖最后一个值而你得到最后一个值。试试 -
$countsub1[] = array("$z[$i]","$i");
试试这个:
<?php
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++) {
$countsub1[] = array($z[$i],$i);
}
print_r($countsub1);
?>
您必须使用 $countsub1[]
为数组赋值,因为 $countsub1
将在每个循环中覆盖前一个值。
PS:变量不应像赋值时在循环中那样放在引号内,PHP 可能会将其视为字符串
您一直覆盖 $countsub1
,这就是为什么您只获得最后一个值的原因。
您需要使用以下方法之一将其追加到数组中:
$countsub1[] = array("$z[$i]","$i");
array_push($countsub1, array("$z[$i]","$i"));
在您的代码中,您正在将值分配给变量 hens,如果您想将值插入数组,它会获取最后一个值,请像这样使用
$array=array()
for($i=0;$i<=10;$i++)
{
$array[] = array($z[$i],$i);
}
print_r($array)
$array[] is the method to insert values into the array.and $array is the method to assign value to variable .
that's the reason you are getting only last value as it is overwriting the previous value.
$array[] will store the values into the index like "0,1,2....."
$array will override the values every time in the loop
if you use $array['key'] in the loop it will also do the same job as $array
在一行中你可以使用 array_flip() PHP 函数。
$countsub1 = array_flip($z);
或
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
$countsub1[$z[$i]] = $i;
}
print_r($countsub1);
输出
Array
(
[a] => 0
[b] => 1
[c] => 2
[d] => 3
[e] => 4
[f] => 5
[g] => 6
[h] => 7
[i] => 8
[j] => 9
[k] => 10
)
制作像 OP 这样的关联数组的答案要求: 如果您想要重复的键,下面的代码将起作用,否则我建议您进行数组合并
$z=array("a","b","c","d","e","f","g","h","i","j","k");
$countsub1 = array();
for($i=0;$i<=10;$i++)
{
//duplicate keys option
$countsub1[] = array($z[$i] => $i);
//single array with unique keys
$countsub1 = array_merge($countsub1, array($z[$i] => $i));
}
print_r($countsub1);
就像其他人所说的那样,您一直在给 $countsub1
赋值,所以它被覆盖并具有上次赋值的值。您需要 向其附加 。
所以你想做的是翻转 $z
数组的键和值,对吧?如果是这样,则已经为您预定义了一个函数:array_flip
编辑:如果您想手动完成,我建议在下面使用更灵活的代码,它接受 $z
的不同长度:
$countsub1 = array();
foreach ($z as $key => $value) {
$counsub1[$value] = $key;
}
试试这个:
$arr=array();
for($i=0; $i<=10; $i++){
$key =$z[i];
$arr[$key]=$i;
}