如何在foreach循环中将新索引添加到数组中


How do add new index to array in foreach loop?

我有一个数组,它的结构是

<?php
$a = [1,2,3,4,5,6];
$b = [];
?>

我想将变量$a的索引一个接一个地添加到变量$b

$a = [1,2,3,4,5,6];
$b = array_keys($a);
$b = array_values($a); 
or you can do as follows :
foreach ($a as $v){ 
  array_push($b, $v); 
}

我想你正在寻找这样的东西,

$a = [1,2,3,4,5,6];
foreach ($a as $key => $value){
    $b[] = $key;
}
<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

根据我对你的问题的理解

<?php
$a = [1,2,3,4,5,6];
$b = array();
for ($i=0; $i < count($a) ; $i++) { 
    array_push($b, $i);
}
print_r($b);
?>
foreach ($a as $v){
    $b[] = $v;
}

或者,如果你只想复制数组,你可以使用array_merge代替:

$b = array_merge(array(), $a);

我有点误解了这个问题。如果你想复制密钥而不是值,你可以用foreach循环这样做:

foreach ($a as $k=>$v){
    $b[] = $k;
}

像array_keys这样的其他建议也同样有效。