【问题标题】:Make an array key => value adding values from another array制作一个数组键=>从另一个数组添加值
【发布时间】:2017-10-20 08:40:20
【问题描述】:

我想要这个数组输出,因为我需要它供 PHP 中的 Google_service_calendar_event 的参与者使用:

   Array ( 
         [0] => Array ( [email] => myemail@gmail.com ) 
         [1] => Array ( [email] => myemail1@gmail.com )
         [2] => Array ( [email] => myemail2@gmail.com )
         [3] => Array ( [email] => myemail3@yahoo.com ) ) 

这是我的 PHP 代码:

    $invitados_inicial = array(array('email' => $correo_del_director));

    foreach ($_SESSION['gcal_correo_aplicantes'] as $correo_aplica) {

        $invitados_inicial['email'] = $correo_aplica;
    }

这就是我得到的(不是我需要的):

    Array ( 
        [0] => Array ( [email] => myemail@gmail.com ) 
        [email] => Array ( 
            [0] => myemail1@gmail.com 
            [1] => myemail2@gmail.com 
            [2] => myemail3@yahoo.com
        ) 
    ) 

无论如何,我没有得到我想要的输出数组,我的与会者也无法进入 Google_service_calendar_event。我应该怎么做才能获得我不想要的数组输出?

【问题讨论】:

  • 你好,试试$invitados_inicial[] = ['email' => $correo_aplica];
  • @marv255,它不起作用:(

标签: php arrays google-calendar-api


【解决方案1】:

你必须弄清楚$_SESSION['gcal_correo_aplicantes'] 的结构才能得到正确的答案。在下面,我假设它是这样的:

$session = array( "email1@add.com","email2@add.com");

第一个解决方案:

<?php
$invitados_inicial=[];
for ($i=0; $i<count($session);$i++) {
    $invitados_inicial[$i] = array( 'email' => $session[$i] );
}
var_dump($invitados_inicial);

第二个选项:

<?php
$invitados_inicial=[];
foreach ($session as $correo_aplica) {
    $invitados_inicial[] = array( 'email' => $session[$i] );
}
var_dump($invitados_inicial);

【讨论】:

  • $_SESSION['gcal_correo_aplicantes'] 是一个多选输入的 POST 变量(HTLM 选择一个简单列表的多项选择)。如果我对此变量执行 print_r,我会得到:array(1) { [0]=> array(3) { [0]=> string(27) "myemail@gmail.com" [1]=> string( 27) "myemail2@gmail.com" [2]=> string(23) "myemail3@gmail.com" } } 我试过你的代码但它不工作:(
【解决方案2】:

感谢您的帮助,您给了我一些想法,我可以这样做:

    $invitados_inicial = array(array('email' => $correo_del_director));

    // Agrego a los candidatos seleccionados a listado de participantes      
    foreach ($_SESSION['gcal_correo_aplicantes'][0] as $correo_aplica) {

      $invitados_inicial[] = array('email' => $correo_aplica);
    }

感谢 Jarbit Lira 和 Carlos E. López,他们也给了我很多帮助。

【讨论】:

    【解决方案3】:

    试试这个:

     $invitados_inicial = array(array('email' => $correo_del_director));
    
            foreach ($_SESSION['gcal_correo_aplicantes'] as $correo_aplica) {
    
                 foreach ($correo_aplica as $value) {
                   $arr['email'] = $value;
                   $invitados_inicial[] =  $arr;
               }
            }
    

    【讨论】:

    • 输出是什么?
    • 这是输出: Array ( [0] => Array ( [email] => myemail@gmail.com ) [1] => Array ( [email] => Array ( [0] => myemail2@gmail.com [1] => myemail3@gmail.com [2] => myemail4@gmail.com ) ) )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多