2017-01-06 10 views
2

私は、次の機能を備えた現在の日付に基づいて時間を検索しようとしていますこんにちは:$のtodaydayがサーバから来て、今日の日に等しい検索配列には結果を返しません

$key = array_search($todayday, array_column($days, 'date', 'hours')); 

日の日付。

アレイ$daysは次のとおりです。

    Array 
(
    [0] => Array 
     (
      [date] => 01 
      [hours] => 0 
     ) 

    [1] => Array 
     (
      [date] => 02 
      [hours] => 8 
     ) 

    [2] => Array 
     (
      [date] => 03 
      [hours] => 16 
     ) 

    [3] => Array 
     (
      [date] => 04 
      [hours] => 24 
     ) 

    [4] => Array 
     (
      [date] => 05 
      [hours] => 32 
     ) 

    [5] => Array 
     (
      [date] => 06 
      [hours] => 40 
     ) 

    [6] => Array 
     (
      [date] => 07 
      [hours] => 40 
     ) 
... etc.... 

の$ todaydateは、それが動作1,2,3,4,5に等しいです。 6と7は何も返しません。この問題を解決するにはどんな助力も歓迎されます。ありがとう

私は日付= 6と7は時間の同じ値を持っていると考えています。なぜなら、これは何も返されませんが、実際にそれを返す方法です。

答えて

2

あなたの仮定は正しいです、あなたは重複する鍵を持つことができません。検索からのキーを使用して、hoursにアクセス:

$key = array_search($todayday, array_column($days, 'date')); 
$hours = $days[$key]['hours']; 

か短い:インデックスは0ベースとシーケンシャルされていない場合には

$hours = $days[array_search($todayday, array_column($days, 'date'))]['hours']; 

、再インデックスにarray_values()を使用します。

$days = array_values($days); 
$key = array_search($todayday, array_column($days, 'date')); 
$hours = $days[$key]['hours']; 
+0

優秀!ありがとう –

関連する問題