Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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,有没有一种简洁的方法可以使数组的键来自第一个数组,值来自第二个数组,并丢弃第二个数组中第一个数组中没有对应键的任何项?例如,如果: $keys = array('key1'=>1,'key2'=>2,'key3'=>3); $vals = array('key1'=>'val1', 'key4'=>'val4'); 结果将是: $result=array('key1'=>'val1' , 'key2'=>2 , 'key3'=>3); 目

有没有一种简洁的方法可以使数组的键来自第一个数组,值来自第二个数组,并丢弃第二个数组中第一个数组中没有对应键的任何项?例如,如果:

 $keys = array('key1'=>1,'key2'=>2,'key3'=>3);
 $vals = array('key1'=>'val1', 'key4'=>'val4');
结果将是:

 $result=array('key1'=>'val1' , 'key2'=>2 , 'key3'=>3);
目前,我正在使用以下两行:

 $result = array_intersect_key($vals, $keys);
 $result = array_merge($vals, $result);

有没有更干净的方法可以做到这一点?

你现在做得很正确。要减少行数,可以通过重新分配$result变量

 $result = array_merge($vals, array_intersect_key($vals, $keys));

两者的元素数相同?@sgtBOSE否,第二个数组VAL未知。您的代码有什么问题?代码没有问题。在这种情况下,您不能使用1;