微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何使用正则表达式从数组中查找匹配键

当我打印我的Joomla会话时,我得到的数据输出就像波纹管一样.现在我想找到compare_session,并且需要使用逗号单独存储所有mtaching.我不会使用重复键表单数组.

我希望输出像这样:

281,147,136,96,46,30

Array
(
    [__default] => Array
        (
            [session.counter] => 9
            [session.timer.start] => 1376717892
            [session.timer.last] => 1376718229
            [session.timer.Now] => 1376718247
            [session.client.browser] => Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36
            [registry] => JRegistry Object
                (
                    [data:protected] => stdClass Object
                        (
                        )

                )

            [user] => JUser Object
                (
                    [isRoot:protected] => 1
                    [id] => 42
                    [name] => Manan
                    [username] => Manan
                    [email] => 
 manan@letsnurture.com
                    [password] => 3c4ebaabb8701e80c581c8a291c44073:Aegdm5ddVjEhkJjPIdFlLqj6QZCRnWFO
                    [password_clear] => 
                    [usertype] => deprecated
                    [block] => 0
                    [sendEmail] => 1
                    [registerDate] => 2012-10-15 02:03:41
                    [lastvisitDate] => 2013-08-17 05:38:12
                    [activation] => 0
                    [params] => {"admin_style":"","admin_language":"","language":"","editor":"","helpsite":"","timezone":""}
                    [groups] => Array
                        (
                            [8] => 8
                        )

                    [guest] => 
                    [lastResetTime] => 0000-00-00 00:00:00
                    [resetCount] => 0
                    [_params:protected] => JRegistry Object
                        (
                            [data:protected] => stdClass Object
                                (
                                    [admin_style] => 
                                    [admin_language] => 
                                    [language] => 
                                    [editor] => 
                                    [helpsite] => 
                                    [timezone] => 
                                )

                        )

                    [_authGroups:protected] => Array
                        (
                            [0] => 1
                            [1] => 8
                        )

                    [_authLevels:protected] => Array
                        (
                            [0] => 1
                            [1] => 1
                            [2] => 2
                            [3] => 3
                        )

                    [_authActions:protected] => 
                    [_errorMsg:protected] => 
                    [_errors:protected] => Array
                        (
                        )

                )

            [session.token] => 0d79f30e557acf79cada5e55d837caf8
            [breadcrumbs] => http://letsnurture-PHP/PropertyFindbeta/my-propertyfind/watch-list.html?page=2
            [pageURL] => http://letsnurture-PHP/PropertyFindbeta/compare-items.html
            [flag] => true
            [compare_session_20130817110918] => 281,147,136
            [compare_session_20130817111010] => 96,46,30
            [compare_session_20130817111333] => 96,46,30
            [compare_session_20130817111349] => 96,46,30
            [compare_session_20130817111408] => 96,46,30
        )

)

任何想法或建议?谢谢.

解决方法:

$sessions = array();
foreach ($mySession['__default'] as $key => $value)
{
    if (preg_match("/^compare_session_(.*)$/", $key))
    {
        $exp = explode(",", $value);
        foreach ($exp as $session)
        {
            if (!in_array($session, $sessions))
                $sessions[] = $session;
        }
    }
}

var_dump($sessions);

产量

array (size=6)
  0 => string '281' (length=3)
  1 => string '147' (length=3)
  2 => string '136' (length=3)
  3 => string '96' (length=2)
  4 => string '46' (length=2)
  5 => string '30' (length=2)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐