Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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,我有一个这样的数据数组,通过表单传递给我的控制器。它被收集到一个javascript函数中。它将始终是电子邮件名称,但可能有2套或100套 array:10 [▼ 0 => "ken@email.com" 1 => "Ken" 2 => "robert@email.com" 3 => "Robert" 4 => "robert@email.com" 5 => "Robert" 6 => "mike@email.com" 7

我有一个这样的数据数组,通过表单传递给我的控制器。它被收集到一个javascript函数中。它将始终是电子邮件名称,但可能有2套或100套

array:10 [▼
  0 => "ken@email.com"
  1 => "Ken"
  2 => "robert@email.com"
  3 => "Robert"
  4 => "robert@email.com"
  5 => "Robert"
  6 => "mike@email.com"
  7 => "Mike"
]
我现在正在做这个

$recipients = array_chunk($recipients, 2);

array:5 [▼
  0 => array:2 [▼
      0 => "ken@email.com"
      1 => "Ken"
  1 => array:2 [▼
      0 => "robert@email.com"
      1 => "Robert"
  2 => array:2 [▼
      0 => "robert@email.com"
      1 => "Robert"
  3 => array:2 [▼
      0 => "mike@email.com"
      1 => "Mike"
]
我需要的是这个

array:5 [▼
  0 => array:2 [▼
      email => "ken@email.com"
      name => "Ken"
  1 => array:2 [▼
      email => "robert@email.com"
      name => "Robert"
  2 => array:2 [▼
      email => "robert@email.com"
      name => "Robert"
  3 => array:2 [▼
      email => "mike@email.com"
      name => "Mike"
]

怎么做?谢谢

您可以使用键将值重新添加回数组,并通过索引删除其副本

   $recipients = array(
      0 => "ken@email.com",
      1 => "Ken",
      2 => "robert@email.com",
      3 => "Robert",
      4 => "robert@email.com",
      5 => "Robert",
      6 => "mike@email.com",
      7 => "Mike"
    );

    $recipients = array_chunk($recipients, 2);

    for ($i=0; $i < count($recipients); $i++)
    {
        $recipients[$i]['email'] = $recipients[$i][0];
        $recipients[$i]['name'] = $recipients[$i][1];
        unset($recipients[$i][0]);
        unset($recipients[$i][1]);
    }
我希望它能帮助你。

是的,你能做到

<?php
$array = array(
"foo" => "bar",
"bar" => "foo",
100   => -100,
-100  => 100,
);
var_dump($array);
?>

使用自定义密钥添加到数组

<?php
$array= array();
$array[]='name=>bob';
var_dump($array);

因此,如果总是有电子邮件和名称,它将始终是偶数?除非我查询的API出错,但据我所知,它还没有发生。
<?php
$array= array();
$array[]='name=>bob';
var_dump($array);