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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测