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 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛