2015-08-11 4 views
0

Я пытаюсь сопоставить сегодняшнюю дату с датами, хранящимися в массиве. Я почти там, но не совсем.Поиск значения в многомерном массиве - PHP

Если совпадение найдено, я хочу построить ссылку, если нет, ничего не делать.

Проблема в том, что матч не является тем, что ожидается. ie: Для целей тестирования, если я изменю один из массивов, чтобы соответствовать сегодняшней дате (11-08), он не вытащит правильное название Фестиваля.

Любая помощь очень ценится. Первоначально я пытался приспособить этот пост: - PHP multidimensional array search by value

$festivals = array (
1 => array(
     'festivalname' => 'FestivalOne', 
     'eventname' => 'Red', 
     'link'   => 'red', 
     'date'   => '01-05', 
     ), 
2 => array(
     'festivalname' => 'FestivalTwo', 
     'eventname' => 'Yellow', 
     'link'   => 'yellow', 
     'date'   => '02-02', 
     ), 
3 => array(
     'festivalname' => 'FestivalThree', 
     'eventname' => 'Blue', 
     'link'   => 'blue', 
     'date'   => '02-08', 
     ), 
4 => array(
     'festivalname' => 'FestivalFour', 
     'eventname' => 'Green', 
     'link'   => 'green', 
     'date'   => '31-10', 
     ) 
); 

$today = gmdate("j-m"); 
$key = array_search($today, array_column($festivals, 'date')); 
$keys = array_keys(array_column($festivals, 'date'), $today); 


if ($today == $festivals[$key]['link']) { 

echo '<a href="http://example.com/festivals/'.$festivals[$key]['link'].'" title="Festival : '.$festivals[$key]['festivalname'].'">'.$festivals[$key]['festivalname'].'</a>'; 

};

+0

Я думаю, что ответ здесь http://php.net/manual/en/control-structures.if.php – Popnoodles

+0

Это согласование, что не работает должным образом –

+0

Пожалуйста отредактируйте вопрос, объясняющий, в чем проблема. – Popnoodles

ответ

0

Попробуйте это:

<?php 
    $festivals = array (
1 => array(
     'festivalname' => 'FestivalOne', 
     'eventname' => 'Red', 
     'link'   => 'red', 
     'date'   => '01-05', 
     ), 
2 => array(
     'festivalname' => 'FestivalTwo', 
     'eventname' => 'Yellow', 
     'link'   => 'yellow', 
     'date'   => '02-02', 
     ), 
3 => array(
     'festivalname' => 'FestivalThree', 
     'eventname' => 'Blue', 
     'link'   => 'blue', 
     'date'   => '02-08', 
     ), 
4 => array(
     'festivalname' => 'FestivalFour', 
     'eventname' => 'Green', 
     'link'   => 'green', 
     'date'   => '31-10', 
     ) 
); 

$today = gmdate("j-m"); 

foreach($festivals as $item) { 


if ($today == $item['date']) { 

echo '<a href="http://example.com/festivals/'.$item['link'].'" title="Festival : '.$item['festivalname'].'">'.$item['festivalname'].'</a>'; 
} 

} 


?> 
Смежные вопросы