[英]How to merge two arrays in php?
我要合並/合並以創建一個數組,可以循環通過以下數組以將圖像及其各自的標題添加到數據庫中。
陣列1:
[0] => array(1) {
["filename"] => string(22) "1463668615_1_image.jpg"
}
[1] => array(1) {
["filename"] => string(22) "1463668641_1_image.jpg"
}
陣列2:
[0] => array(1) {
["title"] => string(15) "My image title"
}
[1] => array(1) {
["title"] => string(5) "Title"
}
這是我要創建的數組的格式。
合並數組:
[0] => array(2) {
["filename"] => string(22) "1463668615_1_image.jpg",
["title"] => string(3) "My image title"
}
[1] => array(2) {
["filename"] => string(22) "1463668641_1_image.jpg",
["title"] => string(0) "Title"
}
如果我正確地理解了這個叫做zip的話 ,不要合並 。 您可以使用array_map()
函數執行此array_map()
:
$filenames = [
['filename' => '1463668615_1_image.jpg'],
['filename' => '1463668641_1_image.jpg']
];
$titles = [
['title' => 'Title1'],
['title' => 'Title2']
];
$zipped = array_map(function ($elem1, $elem2) {
return [
'filename' => $elem1['filename'],
'title' => $elem2['title']
];
}, $filenames, $titles);
var_dump($zipped);
這是演示 。
array_merge()
是將其用作array_map()
的回調的方式:
$result = array_map('array_merge', $array1, $array2);
數組的結構是否相同? 這些數組的大小是否也將始終相同? 如果不是,則沒有確定的方法,如果是,則可以執行簡單的循環:
$arr1 = array(
0 => array(
"filename" => "1463668615_1_image.jpg",
),
1 => array(
"filename" => "1463668641_1_image.jpg",
),
);
$arr2 = array(
0 => array(
"title" => "My image title",
),
1 => array(
"title" => "Title",
),
);
$new = array();
for ($k = 0, $size = count($arr1); $k < $size; $k++) {
$new[$k]['filename'] = $arr1[$k]['filename'];
$new[$k]['title'] = $arr2[$k]['title'];
}
var_dump($new);
這應該工作:
的PHP
$filenames = [["filename" => "1463668615_1_image.jpg"], ["filename" => "146366865213_image.jpg"]];
$titles = [["title" => "Titre1"], ["title" => "Titre22"]];
foreach ($filenames as $key => &$value) {
$value['title'] = $titles[$key]['title'];
}
var_dump($filenames);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.