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 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>';
     }
    
    }
    
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里