如何在PHP中将循环变量插入关联数组?

3

我有以下的循环:

 foreach($_POST as $key => $value) {

           echo "Key:" . $key . " Value: ". $value .   "<br />";         

           }

产生以下结果:
键:1 值:我的价值 键:8 值:我的其他一些价值 键:9 值:另一个价值
我想做的是创建一个类似于这样的数组:
$editWhat = array(
                'field1'            => $key1,
                'field2'            => $key2,
                'field3'            => $key3,
                'field4'        => $value1,
                'field5'        => $value2,
                'field6'        => $value3
            ); 

在数组中的最后一个值对行中应去除逗号,这会给我带来额外的问题。

非常感谢任何帮助。

敬礼,John


你是想用这些键值对创建一个数组,还是只是想打印它们看起来像关联数组? - jonhopkins
请明确您的问题。 - Janak Prajapati
我正在尝试创建一个数组。 - user2417624
好的,那么下面的答案是正确的。我只是不确定,因为你发布的代码都是关于打印数组的。 - jonhopkins
7个回答

3
$editWhat = array();
foreach($_POST as $key => $value)
    $editWhat['field'.(count($editWhat)+1)] = $key;
foreach($_POST as $value)
    $editWhat['field'.(count($editWhat)+1)] = $value;

这将完全按照您所描述的方式执行。如果您不需要数组的键,可以这样做:

$editWhat = array_merge(array_keys($_POST), array_values($_POST));

谢谢。那正是我所需要的。我会在40秒内接受你的答案 :-) - user2417624
给那位给我点踩的人:你能解释一下为什么吗?是我的代码有错误还是我漏掉了什么? - Christoph Diegelmann

2
也许我误解了,但是尝试使用以下方法获取您想要的数组:
$editWhat = array();
$count = count($_POST);
foreach($_POST as $key => $value) {
    $editWhat['field'.($key+1)] = $key;
    $editWhat['field'.($key+$count+1)] = $value;
}

添加第二个循环来存储值,你就能得到我的加1分 ;) - Christoph Diegelmann

0

嗨,路易斯...我得到了$editWhat = array( 'key1' => $value1, 'key2' => $value2, ); 但这不是我想要的...请看一下我的问题。 - user2417624

0
$editWhat=array();

foreach($_POST as $key => $value) {

           $editWhat[$key] = $value;         

           }

0

试试这个。

foreach($_POST as $key=>$value){
    $keys[]=$key;
    $values[]=$value;
}
foreach($keys as $editKey){
    $editWhat[]=$editKey;
}
foreach($values as $editValue){
    $editWhat[]=$editVlaue;
}

1
为什么在循环之前要存储键和值?你可以使用array_values()array_keys(),或者直接循环$_POST并直接插入到$editWhat中。 - Christoph Diegelmann

0
 $array = array();
$n = 1;
foreach($_POST as $key => $value) {
      $array["field".$n] = $key; 
      $n++;
 }

foreach($_POST as $key => $value) { 
      $array["field".$n] = $value; 
      $n++; 
}

print_r($array);

0
您可以使用 array_keys()array_values() 函数遍历数组的键和值,并使用两个单独的循环构建一个新的数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接