Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.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中将3个数组合并为一个关联数组_Php_Arrays_Associative Array - Fatal编程技术网

如何在PHP中将3个数组合并为一个关联数组

如何在PHP中将3个数组合并为一个关联数组,php,arrays,associative-array,Php,Arrays,Associative Array,我有3个数组,每个数组中只有7个元素。阵列包括: filename[] title[] 说明[] 我想为上面数组中的每个数据表示并遍历单个关联数组filename可以是assoc数组的键值,但每个文件名都有自己相应的标题和说明 以下是一个样本: var_dump($filename) string(10) "IMG_1676_3" [1]=> string(10) "IMG_0539_3" [2]=> string(8) "IMG_1942" [3]=&g

我有3个数组,每个数组中只有7个元素。阵列包括:

filename[]

title[]

说明[]

我想为上面数组中的每个数据表示并遍历单个关联数组
filename
可以是assoc数组的键值,但每个文件名都有自己相应的标题和说明

以下是一个样本:

var_dump($filename)
    string(10) "IMG_1676_3" [1]=> 
    string(10) "IMG_0539_3" [2]=> 
    string(8) "IMG_1942" [3]=> 
    string(8) "IMG_1782" [4]=> 
    string(8) "IMG_2114" [5]=> 
    string(8) "IMG_9759" [6]=> 
    string(8) "IMG_2210" }

var_dump($title)
    string(31) "Lighthouse at Ericeira Portugal" [1]=> 
    string(23) "Gaudi park in Barcelona" [2]=> 
    string(32) "Driving around outside of Lisbon" [3]=> 
    string(16) "Madeira Portugal" [4]=> 
    string(15) "Barcelona Spain" [5]=> 
    string(15) "Lisbon Portugal" [6]=> 
    string(14) "Sailing Lisbon" }
只需确保将有效的输入传递给函数,或者添加一些额外的检查。这就是你要找的吗?

试试这个

$result = array_combine($filename, array_map(null, $title, $description));
var_dump($result);
或者,如果需要内部数组是关联的

$result = array_combine($filename, 
  array_map(function($t, $d) { 
      return array('title'=>$t, 'description'=>$d); 
    }, $title, $description
  )
);
如果您只想组合这三个阵列

$result = array_map(function($f, $t, $d) { 
    return array('filename'=>$f, 'title'=>$t, 'description'=>$d); 
  }, $filename, $title, $description
);

如果所有3个数组的数组键都相同,那么更好的方法是使用foreach创建一个新数组,其中所有键(文件名、标题、说明)位于同一个键中:

<?php
foreach($filename as $key => $file)
{
    $files[$key]['filename'] = $file;
    $files[$key]['title'] = $title[$key];
    $files[$key]['description'] = $description[$key];
}
?>

$array1=数组(“橙色”、“苹果”、“葡萄”);
$array2=阵列(“桃子”,88,“铅垂”);
$array3=数组(“lemon”,342);
$newArray=array\u merge($array1、$array2、$array3);
foreach($newArray作为$key=>$value){
回显“$key-$value
”; }
我如何调用
$result[0]
的标题或数据字段描述?
$result[0]['title']]
$result[0]['description']
我非常喜欢你的逻辑,我认为这是最好的答案。此解决方案不符合问题的要求。
<?php
foreach($filename as $key => $file)
{
    $files[$key]['filename'] = $file;
    $files[$key]['title'] = $title[$key];
    $files[$key]['description'] = $description[$key];
}
?>
$array1 = array("orange", "apple", "grape"); 
$array2 = array("peach", 88, "plumb");
$array3 = array("lemon", 342); 
$newArray = array_merge($array1, $array2, $array3);
foreach ($newArray as $key => $value) {
    echo "$key - <strong>$value</strong> <br />"; 
}