Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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 组合两个数组以生成具有2个值的键_Php_Arrays - Fatal编程技术网

Php 组合两个数组以生成具有2个值的键

Php 组合两个数组以生成具有2个值的键,php,arrays,Php,Arrays,我有这个阵列: array (size=7) 'form' => string 'form-elements' 'device' => string 'computer' 'company' => string 'sdfsdf' 'Naam' => string 'sdfsdfs' 'phone' => string 'dfsdfsd' 'email' => string 'andrey6ssss13@gmail.comrty' '

我有这个阵列:

array (size=7)
  'form' => string 'form-elements'
  'device' => string 'computer'
  'company' => string 'sdfsdf'
  'Naam' => string 'sdfsdfs'
  'phone' => string 'dfsdfsd'
  'email' => string 'andrey6ssss13@gmail.comrty'
  'mesaj' => string 'dasdasd'
我在
$\u SESSION
中为每个键多存储一个值(
$\u SESSION['key from$\u POST.''.\u type']
),“type”,例如,我需要序列化
[“company”,“sdfsdf”,“1”]
是否有办法生成这样的数组:

array (size=7)
  'form' => string 'form-elements'
  'device' => string 'computer'
  'company' => array (
       'sdfsdf'
       '1' 
       )
  'Naam' => array(
     'sdfsdfs'
     '0'
     )
  'phone' => array (
     'dfsdfsd'
      '3'
      ) 
等等

因此,我有这个函数,它完成了我需要的工作,但我必须做一个不同的方法,我需要将
$\u POST
数组与
$\u会话['$\u POST key.'\u type']
组合起来,以便为
$\u POST
键提供两个值

function arrayDisplay($input){
    $goodKeys = array_diff(array_keys($input), array('form', 'captcha'));
    $data = array();
    foreach ($goodKeys as $goodKey) {
       $data[$goodKey] = $input[$goodKey];
    }
    return '[' . implode(
        ', ',
        array_map(
            function ($v, $k) {
                $s = 0;
                if(isset($_SESSION[$k.'_type']))
                {
                 $s = $_SESSION[$k.'_type'];    
                }
                    if(is_array($v))
                        {
                        $v = implode(",",$v);
                        }
                return sprintf('["%s",%s,"%s"]', $k, json_encode($v), $s);
            },
            $data,
            array_keys($data)
        )
    ) . ']';
}

是的,有一种方法,只需编程即可。到目前为止你试过什么?向我们展示你的努力,因为如果你没有努力,没有人会为此付出努力。@klaar I添加了更多信息是的,有一种方法,只需编程即可。到目前为止你试过什么?向我们展示你的努力,因为如果你没有努力,没有人会为此付出努力。@klaar I补充了更多信息