2016-04-23 5 views
-2

Ich habe ein mehrdimensionales Array, das versucht, alle Werte eines bestimmten Schlüssels zu ziehen und einer Variablen zuzuordnen.Werte aus multidimensionalem assoziativem Array herausziehen

Dies ist das Array:

Array 
(
    [I_would_not_know_the_name_of_this_key] => Array 
     (
      [interval] => 3600 
      [display] => Once Hourly 
     ) 
    [nor_this_one] => Array 
     (
      [interval] => 43200 
      [display] => Twice Daily 
     ) 
    [nor_this_one] => Array 
     (
      [interval] => 86400 
      [display] => Once Daily 
     ) 
) 

Ich mag auch den [Anzeige] Wert immer bekommen, wenn ich nicht weiß, was der obere Pegelwert ist.

Funktion, die das Array oben enthält, können weitere Termine hinzugefügt werden, weshalb ich sagte, ich würde den Top-Level-Schlüssel nicht immer wissen: https://codex.wordpress.org/Function_Reference/wp_get_schedules

Mein Code so weit:

  $active_cron_schedules = wp_get_schedules(); //this is the 
      foreach ($active_cron_schedules as $key => $value) { 
      echo $key; 
      } 

      ?> 

Diese Ausgänge zum Beispiel: 'I_would_not_know_the_name_of_this_key', 'nor_this_one', 'nor_this_one', ich muss tiefer einsteigen.

Arrays haben mir immer einen Lauf für mein Geld in PHP gegeben kann nicht herausfinden, wie man eine Schleife durch sie :(

Danke

+0

@PaulCrovella Ich habe einen Mann, glaub mir, ich bin kein Novize, aber Arrays sind etwas, mit dem ich immer Probleme hatte. Ich habe das Handbuch gelesen und ich habe einen Code, aber es gibt nicht die Informationen, die ich will. –

Antwort

1

ich denke, was Sie wil versuchen zu tun Ich werde mit einer foreach() Schleife gelöst oder array_column() abhängig von Ihrer Version von PHP. Der variable Teil ist schwer zu beantworten, weil Sie kein Beispiel dafür angegeben haben, was Sie mit der Variablen machen würden. Ein häufiger Fehler ist die Variable in einer Schleife zu überschreiben, aber wenn alles, was Sie wollen, sind die alle display Werte (oder eine beliebige andere Taste), versuchen:

function getValByKey($array, $getKey = 'display') 
    { 
     $new = array(); 
     foreach($array as $arr) { 
      if(empty($arr[$getKey])) 
       continue; 

      $new[] = $arr[$getKey]; 
     } 

     return $new; 
    } 

$result = array(
        'key1'=> array('interval'=>1,'display'=>'1d'), 
        'key2'=> array('interval'=>2,'display'=>'2d'), 
        'key3'=> array('interval'=>3,'display'=>'3d') 
       ); 
// To use 
$display = getValByKey($result); 
print_r($display); 

// Array column has the same basic function, but 
// Only available in PHP 5 >= 5.5.0, PHP 7 
$display = array_column($result,'display'); 

print_r($display); 

Beide geben Sie:

Array 
(
    [0] => 1d 
    [1] => 2d 
    [2] => 3d 
) 
+0

Ich aktualisierte mit dem, was ich bisher habe. Ich komme im Prinzip nicht so tief hinein, wie ich will. Vielen Dank für Ihre Hilfe, habe nicht versucht, Ihren Code oben, aber ich bin sicher, mit dem, was ich oben hinzugefügt habe, dass ich fast da bin? –

+1

Sie müssen 'echo $ value ['display'];' weil '$ value' das Array ist, nach dem Sie suchen. – Rasclatt

+0

In meinem Beispiel speichert es, anstatt den Wert zu wiederholen, alle "Anzeige" -Werte in einem eindimensionalen Array. – Rasclatt

0

was auch immer der Schlüssel ist, müssen Sie nicht einmal wissen müssen in einer foreach.

hier eine Probe ist. $ key kann alles sein. Sie müssen nur prüfen es Intervall Kind-Element s.

$interval_list = array(); 
foreach ($array as $key => $el) { 
    if (isset($el['interval'])) { 
     $interval_list[] = $el['interval']; 
    } 
} 
+0

Und ich denke du bist ein Programmiergott, der jede einzelne Sache in jedem Programmierwissen kennt. Meine PHP ist intermediär, aber Arrays ist etwas, ich habe nie Zeit verbracht, ja, also mit Arrays ja würde ich sagen, ich bin. Ich werde weiterhin versuchen, es herauszufinden, weil ich von Ihrem Kommentar beleidigt bin. Sie Schnipsel sieht auch unvollständig, glaube nicht einmal, dass Sie verstanden, was ich gefragt habe. –

Verwandte Themen