宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应

php 用栈的知识 检查中括号小括号和大括号是否匹配

2017-01-10 10:42:24 点击量:114 标签: 收藏本文

<?php 


$symbols = array('(' => ')', '[' => ']', '{' => '}');


$stack = array();


$str = 'asd{asd[asdf}asdf}asdf';


foreach (str_split($str) as $char) {

    //压栈

    if(in_array($char, array_keys($symbols))) {

        array_push($stack, $symbols[$char]);

    // 出栈

    }else if(in_array($char, array_values($symbols))) {

        if ($char != array_pop($stack)) //不匹配

        {

            echo 'faild!';

            break;

        }

    }

}