PHP。如何在给定索引

时间:2018-04-06 14:25:51

标签: php arrays sorting arraylist

我想在PHP中的给定索引处插入一个数组。

例如。

    Array
(
    [0] => Array
        (
            [music_id] => 2
            [m_title] => Rolling In The Deep
            [m_cover_image] => 
            [m_file_path] => Rolling_In_The_Deep_Music_File_-1523020121.mp3
            [m_description] => 
            [m_artist_id] => Adele
            [m_genre_id] => 
            [m_post_date] => 2018-04-06 18:08:41
            [m_is_deleted] => NO
        )

    [1] => Array
        (
            [music_id] => 1
            [m_title] => Hello
            [m_cover_image] => 
            [m_file_path] => Hello_Music_File_-1523020071.mp3
            [m_description] => 
            [m_artist_id] => Adele
            [m_genre_id] => 
            [m_post_date] => 2018-04-06 18:07:51
            [m_is_deleted] => NO
        )
)

数组2

Array
(
    [0] => Array
        (
            [m_title] => Sponser 1
            [m_file_path] => Sponser_1_Music_File_-1523020307.mp3
            [m_is_deleted] => NO
        )

)

我想选择一个索引来插入我的数组2.数组1应该为指定索引处的数组2腾出空间。指定索引后的数组1中的内容应向下移动以腾出空间。

我搜索了相关的功能,例如 array_slice() array_splice(),但我无法根据我的要求制作结果。

期待您的回答。谢谢

1 个答案:

答案 0 :(得分:0)

$array1 = array(array('pos1', 1),array('pos2', 2), array('pos3', 3));
$array2 = array(2=>array('newpos3', 3));
$pos=0;
foreach($array2 as $k=>$v) {
  foreach($array1 as $kA=>$vA) {
    if ($k==$kA) {
        $pos = $k;
    }
  }
  array_splice($array1, $pos, 0, array($v));
}
echo '<pre>';
print_r($array1);
echo '</pre>';

像这样的东西。遍历两个数组并检查正确的位置。然后使用array_splice();

插入它