广度优先搜索 PHP 实现

直接上代码了,注释都在代码里面了。

<?php
/**
 * 广度搜索
 *
 * 你的朋友关系,以及朋友的朋友的关系,查看你的朋友或者朋友的朋友是不是包含 m 结尾的名字
 */

// 需要检索的数组
$graph = [];
$graph['you'] = ['alice', 'bob', 'claire'];
$graph['bob'] = ['anuj', 'peggy'];
$graph['alice'] = ['peggy'];
$graph['claire'] = ['thom', 'jonny'];
$graph['anuj'] = [];
$graph['peggy'] = [];
$graph['thom'] = [];
$graph['jonny'] = [];

// 搜索过的数组
$searchedItem = [];
// 待检索的数组
$waitSearchArray = [];
// 将第一层的关系加入到等待搜索的数组
$waitSearchArray = array_merge($waitSearchArray, $graph['you']);

// 将结果元素赋值为 false
$resultName = false;

//需要查找的字符
$findChar = 'z';

// 如果等待搜索的数组不为空就循环查找
while ($waitSearchArray) {
    // 从队列头部弹出一个元素
    $name = array_shift($waitSearchArray);
    // 如果待检查的元素在已经搜索过的数组中,就跳过,这个是用来防止循环检查的
    if (in_array($name, $searchedItem)) {
        continue;
    }
    // 获取最后一个字符
    $lastChar = substr($name, strlen($name) - 1, 1);
    // 如果最后一个字符是 m,就说明找到了,把结果赋值,然后跳出循环
    if ($lastChar == $findChar) {
        $resultName = $name;
        break;
    }

    // 到这里了说明没有找到,那么把这个人的名字,放入到已经搜索过的数组中
    $searchedItem[] = $name;
    // 然后再把这个名字的朋友关系加入到待搜索的数组中
    $waitSearchArray = array_merge($waitSearchArray, $graph[$name]);
}

var_dump($resultName);

29周岁生日快乐

一不小心29周岁了,在努力一下就而立了,所以这次就不努力了,慢慢来吧。

跟郝太太在一起已经一年半了,这一年半有争吵,有开心,有很多事情。当然最重要的是,房子买了,证也领了,啊哈哈哈。

最近一个月的学习效果也超级好,为半年后的折腾做准备吧。

图片alt

图片alt

图片alt

图片alt

蛋糕是郝太太给定的,好吃,喜欢

图片alt

菜是我做的,丑但是好吃

图片alt

键盘是我自己洗的,真他娘的累。

从来没想到郝太太会提前给我庆祝生日,原本是很开心的一天,还是被我偷偷抽烟惹到郝太太了,对于自己的承诺没有做到的确是我的错,所以还是诚恳的承认了错误,然后努力戒掉烟吧。

虽然现在比较苦,但是郝太太,别着急,给我点时间,会让生活更好的,有你的地方,就叫做家。

最近的总结

又到了吐槽时间了,毕竟最近也思考了不少

话说以后一定要告诉自己的亲戚无论如何也要上本科,当然了,三本还是要考虑一下的,我并不是看不起三本,毕竟我也就是个自考而已,但是三本的水平真心就跟我大专差不了多少。这并不是指老师不行,老师自然都是差不多的,而是指周围的大环境,像我这样很容易被影响到的,就会更加堕落,当然如果你是个勤奋并且能克制自己的人,就另算了,所以说大牛们请忽略这段话。所以无论合适都应该高标准的要求自己。

子曰 取乎其上,得乎其中; 取乎其中,得乎其下; 取乎其下,则无所得矣

最近看了一些文章和一些招聘信息,也就列了一些学习计划,但是在学习一个东西的时候又发现也有不足,所以最近回家学习就总是跳来跳去的。刚才仔细思考了一下,发现不应该这样,这就是被严重干扰了。所以刚刚列了一下学习计划。

希望能有个好的提升吧。

给博客升级成功了

图片alt

话说这次升级还是比较坑的,踏了以前注意过的坑。

比如说 config:cache 以后读取 env 失败的问题, 参见 https://laravel-china.org/topics/3362/laravel-use-env-to-read-the-environment-variable-null

还有 https 的问题,不过总算是搞定了,接下来还有几个问题,小调整一下就 ok 了,距离上次升级博客已经过去了一年,现在看来,这一年,还是进步了不少东西的。继续加油吧

PHP 细节补全计划:引用

图片alt

最近在公司比较忙,以前有空闲的时候没有发现的东西,反而再忙的时候会加深体会。所以就动了心思准备写一个 php 细节补全的系列,不知道能写多少,慢慢来吧,这个就是第一篇了。

其实,平时我个人觉得再使用引用的时候机会并没有那么多,但是呢,引用这个东西是绝对不可以忽略的。

引用平时就我个人来说使用的场景有如下几个:

  • 有批量处理数组数据的时候会使用引用,这样再方法里面就不用在单独返回了,比较省事
  • 再有递归调用的时候也会使用,但是使用的时候需要注意小心踩坑

剩下的貌似就不是很多了,但是这两天看过几个面试题,让我平时没注意的一些东西或者说没有深入考虑的东西,有了更深入的理解。

先看下面这个题: