如何在PHP中将3个数组合并为一个关联数组
我有3个数组,每个数组中只有7个元素。阵列包括:如何在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
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 />";
}