簡體   English   中英

如何在PHP中合並兩個數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM