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

Giv*_*Pie 9 php arrays associative-array

我有3个数组,每个数组只有7个元素.数组是:

filename[]

title[]

description[]

我想表达并迭代上面数组中每个数据的单个关联数组.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" }
Run Code Online (Sandbox Code Playgroud)

Col*_*n M 6

function mergeArrays($filenames, $titles, $descriptions) {
    $result = array();

    foreach ( $filenames as $key=>$name ) {
        $result[] = array( 'filename' => $name, 'title' => $titles[$key], 'descriptions' => $descriptions[ $key ] );
    }

    return $result;
}
Run Code Online (Sandbox Code Playgroud)

只需确保将有效输入传递给函数,或添加一些额外的检查.这就是你要找的东西吗?


小智 5

如果所有3个数组的数组键都相同,那么更好的方法就是使用相同的键创建一个包含所有键(文件名,标题,描述)的新数组:

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