dqfwcj0030
2015-08-11 16:58 阅读 32
已采纳

在多维数组中查找值 - PHP

I am trying to match today's date to the dates stored in an array. I am nearly there, but not quite.

If a match is found, I want to build a link, if not, do nothing.

The problem is that the match isn't what is expected. ie: For testing purposes, if I change one of the arrays to match today's date ( 11-08 ) it doesn't pull out the correct Festival name.

Any help greatly appreciated. I originally tried to adapt this post :- 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>';

};

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • 已采纳
    dongzhi4690 dongzhi4690 2015-08-11 17:25

    Try this:

    <?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>';
     }
    
    }
    
    
    ?>
    
    点赞 评论 复制链接分享

相关推荐