2016-07-21 8 views
0

Ich versuche, ein Array nur aus dem basename der URLs von $member1 und $member2 und so weiter zu $member(n) zu erstellen.Wie wird nur der Wert eines verschachtelten Arrays ausgewählt und gedruckt?

Das Basis-Array, das ich benutze, sieht aus einem Grund so aus, da ich es für eine andere foreach Schleife verwende.

So sieht das Programm wie folgt aus:

$member1 = 'http://www.bla-bla.com/aFolder/anotherFolder'; 
$member2 = 'http://www.yada-yada.com/yetAnotherFolder/innerFolder'; 
$member3 = 'http://www.boo-boo.com/abcs/folder'; 

//this is the main array 
$teams = array(
    array("url" => $member1, "selector" => "a"), 
    array("url" => $member2, "selector" => "input"), 
    array("url" => $member3, "selector" => "h1"),...,...); 

Ich möchte eine foreach bauen, die am Ende ein Array mit den Werten mit basename($member(n)) schaffen würde.

Ich würde mein Ergebnis mag so aussehen:

Array 
(
    [0] => anotherFolder 
    [1] => innerFolder 
    [2] => folder 
) 

Bisher habe ich verschiedene Arten versucht, diesen bestimmten Wert ohne Erfolg zu extrahieren, konnte ich nicht einen Weg finden, wie zu extrahieren, dass spezifischer Wert. Ich werde die Hilfe zu schätzen wissen.

Antwort

1
$basenames = []; 
foreach ($teams as $team) { 
    $basenames[] = basename($team['url']); 
} 
+0

Eigentlich löste es, ich habe ein anderes Problem, das mit dem Ersetzen leerer Array-Werte mit einer Zeichenfolge wie "leer" zu tun hat, würden Sie Ihre Antwort bearbeiten können, wenn ich meine Frage einfüge/bearbeite, oder sollte Ich öffne eine neue Frage? – clusterBuddy

+0

Klingt wie eine neue Frage :) –

1
function getBaseName($array){ 
    $return=array(); 
    foreach($array as $arr) 
    { 
     $exp=explode("/",$arr['url']); 
     $return[]=array_pop($exp); 
    } 
    return $return; 
} 

$basenames[]=getBaseName($teams); 
1

Wenn ich Sie recht verstanden, versuchen Sie dies:

$resArray = array(); 

foreach($teams as $team){ 
    $resArray[] = basename($team['url']); 
} 
1

Die Lösung mit array_map und basename Funktionen:

... 
$result = array_map(function($v){ return basename($v['url']); }, $teams); 
1
$array = array(); 

foreach($teams as $team){ 
     $array[] = basename($team["url"]); 
} 
print_r($array); 

druckt

012.351.