2017-06-11 2 views
0

J'ai deux matrices comme ci-dessous;Besoin d'aide sur les matrices de mélange

$array1 = array(
    'cover.xhtml', 
    'title.xhtml', 
    'copyright.xhtml', 
    'dedication.xhtml', 
    'toc_brief.xhtml', 
    'toc.xhtml', 
    'ch02_1.xhtml', 
    'ch02_2.xhtml', 
    'ch02_3.xhtml', 
    'ch02_4.xhtml', 
    'ch02_5.xhtml', 
    'ch02_6.xhtml', 
    'ch02_7.xhtml', 
    'ch02_8.xhtml', 
    'ch02_9.xhtml', 
    'ch02_10.xhtml' 
); 

$array2 = array(
    '', 
    'title.xhtml', 
    'copyright.xhtml', 
    'dedication.xhtml', 
    'ch02_2.xhtml', 
    'ch02_2#454.xhtml', 
    'ch02_4.xhtml', 
    'ch02_1.xhtml', 
    'ch02_11.xhtml', 
    'ch02_12.xhtml', 
    '' 
); 
résultat

devrait être:

array(
    'cover.xhtml', 
    'title.xhtml', 
    'copyright.xhtml', 
    'dedication.xhtml', 
    'toc_brief.xhtml', 
    'toc.xhtml', 
    'ch02_1.xhtml', 
    'ch02_2.xhtml', 
    'ch02_2#454.xhtml', 
    'ch02_3.xhtml', 
    'ch02_4.xhtml', 
    'ch02_5.xhtml', 
    'ch02_6.xhtml', 
    'ch02_7.xhtml', 
    'ch02_8.xhtml', 
    'ch02_9.xhtml', 
    'ch02_10.xhtml', 
    'ch02_11.xhtml', 
    'ch02_12.xhtml' 
) 

J'ai essayé avec: call_user_func_array('array_merge', array_map(null, $array1, $array2)); Cela n'a pas produit le résultat que je avais besoin decribed que. S'il vous plaît aider.

Répondre

0

Si l'ordre n'a pas vraiment, utilisez:

$array3 = array_values(array_unique(array_filter(array_merge($array1, $array2)))); 

Sortie:

Array 
(
    [0] => cover.xhtml 
    [1] => title.xhtml 
    [2] => copyright.xhtml 
    [3] => dedication.xhtml 
    [4] => toc_brief.xhtml 
    [5] => toc.xhtml 
    [6] => ch02_1.xhtml 
    [7] => ch02_2.xhtml 
    [8] => ch02_3.xhtml 
    [9] => ch02_4.xhtml 
    [10] => ch02_5.xhtml 
    [11] => ch02_6.xhtml 
    [12] => ch02_7.xhtml 
    [13] => ch02_8.xhtml 
    [14] => ch02_9.xhtml 
    [15] => ch02_10.xhtml 
    [16] => ch02_2#454.xhtml 
    [17] => ch02_11.xhtml 
    [18] => ch02_12.xhtml 
) 

Check it out here. Le code effectue les opérations suivantes: fusionner ->supprimer vide ->supprimer les doublons ->touches fixes.

+0

Merci de votre réponse. L'ordre compte vraiment. Donc toujours essayer d'obtenir une solution. – Arghya

+0

@Arghya ce sera difficile, car il ne suit pas vraiment un chemin logique. Ce n'est pas l'ordre alphabétique, c'est juste commandé pour la partie 'ch'. – FirstOne

+0

hmm Je comprends et je suis d'accord Je suis coincé dedans depuis 2 jours – Arghya