2016-04-23 15 views
-2

私は、特定のキーのすべての値を取り出し、それを変数に代入しようとする多次元配列を持っています。多次元連想配列から値を引き出す

これは配列です:

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 
     ) 
) 

私はいつも、私は上位レベルの値が何であるかを知らない場合でも、[表示]の値を取得したいです。これまでhttps://codex.wordpress.org/Function_Reference/wp_get_schedules

マイコード:

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

      ?> 

この出力上記の配列が含まれています

機能は、複数のスケジュールは私が常にトップレベルのキーを知っていないと述べた理由である追加することができますたとえば、 'I_would_not_know_the_name_of_this_key'、 'nor_this_one'、 'nor_this_one'、私はもっと深く入る必要があります。

配列はいつも私にPHPでの私のお金のために実行を与えているか、それをループに把握することはできません:(

キーが何であれ

+0

@PaulCrovella私は男がいる、私を信じて私は初心者ですが、配列は私がいつも問題を抱えていたものです。 私はマニュアルを読みましたが、いくつかのコードがありますが、私が望む情報を提供していません。 –

答えて

1

私はあなたがウィルをやろうとしているものだと思いますあなたのPHPのバージョンに応じてforeach()ループまたはarray_column()で解決してください。変数部分は、あなたが変数を使って何をしているのかの例を与えていないので、答えにくいです。しようと、よくある間違いは、ループ内で変数を上書きすることですが、あなたが望むすべてがすべてdisplay値(または他のキー)している場合:

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); 

はどちらもあなたを与える:

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

私はこれまでのことを更新しました。私は基本的には、私が配列に入れたいほど深くは入っていません。あなたの助けてくれてありがとう、haventは上記のコードを試しましたが、私はその上に何を追加したのでしょうか? –

+1

'$ value'はあなたが探している配列なので、' echo $ value ['display']; 'を実行する必要があります。 – Rasclatt

+0

私の例では、値をエコーする代わりに、すべての 'display'値を1次元配列に保存します。 – Rasclatt

0

ありがとう、あなたもそれを知っている必要がいけませんforeachの中で。

こちら。$キーは何もすることができるサンプルです。あなたはちょうどそれが区間子素子Sをチェックする必要があります。

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

そして、あなたは、プログラミングの知識ごとにあらゆることを知っているプログラミングの神だと思います。 私のPHPは中間ですが、配列は私が時間を費やすことは一度もありませんでした。 私はあなたのコメントで怒っているので、私は自分自身でそれを理解しようとし続けます。 スニペットも不完全に見えますが、あなたが私が求めていたことを理解しているとは思えません。 –

関連する問題