2017-01-20 4 views
2

Ich habe zwei Arrays, die ich übereinstimmen müssen und das Ergebnis veröffentlichen.Match 2-Array-Schlüssel und zeigen Wert des zweiten Arrays

$arr1 = 1,3,4; 

$arr2 = 1 => 'Title1' 
     2 => 'Title2' 
     3 => 'Title3' 
     4 => 'Title4' 

Ich möchte das Ergebnis erhalten, die angepassten Schlüssel zu zeigen (Anzahl entspricht), um dann den Wert zu zeigen, der $arr2

Die oben in Title1 führen sollte, TITLE3, TITEL4

ich versucht habe, array_key_exists aber ich glaube, dass ich mich über etwas einfach verwirrt.

 foreach($arr1 as $a) 
     { 
      if(array_key_exists($a, $arr2)) 
      { 
       $new[$a] = $arr2[$a]; 
        } 
     } 
$l=1; 
foreach($new as $n => $ob){ 

    echo '<p>'.$new[$l][0].'">'.$new[$l][0].'</p>'; 
    ++$l; 
} 

Antwort

0

In Ihrem Code, wo tut $ d komme aus ? Es sollte $ a sein. Und $ n sollte anstelle von $ l verwendet werden (was nutzlos ist) und daher nicht inkrementiert.

Ihren Code zu vereinfachen, die Sie geschrieben haben könnte:

<?php 
foreach($arr1 as $k){ 
    if(array_key_exists($k, $arr2)){ 
    // or : if(isset($arr2[$k])){ 
     echo $arr2[$k] . "\n"; 
    } 
} 
?> 
+0

ich Ihre Antwort am Ende bevorzugt. Merci. –

2

In Ihrem Fall können Sie wie verwenden diese

$arr1 = [1,3,4]; 
    $arr2 = [1 => 'Title1', 2 => 'Title2', 3 => 'Title3', 4 => 'Title4']; 
    foreach($arr1 as $key){ 
     echo "\n". $arr2[$key]; 
    } 

Sie können auch Existenz überprüfen, indem isset erste

Live-Demo: https://eval.in/720926

Verwandte Themen