array

array

认真学习一下array系列数组。数组,是所有程序语言中,常用的数据结构,能使用系统提供的自带函数,来处理函数,我个人感觉,一个是更快(因为是内置的嘛,用c语言实现的),另外一个,更容易理解(因为代码更少,也有可能更难,毕竟不是所有人都习惯map/reduce思维。)。

array_map

table一二维数组的形式,我觉得,作为一个程序员,需要掌握这种基础的表达结果。是那种刻到脑子里面的那种。具体参见 array.md。

//重新组织一下。   其实我就想,让二维数组的主键更有含义,便于检索而已。但是我使用没有找到原生的array_方法。
$mapping = [];
foreach($flows as $v){
    $mapping[$v['num']] = $v;
}

由table字符串,我们经tr->td拿到二维数组,即一个参数。可以使用下面的简单的例子

$rows = array_map(td,tr($table));

另外一个字符分隔的例子,也能切各成二维数组:

$url = 'wd=php%20%E5%86%85%E5%AD%98%E6%96%87%E4%BB%B6&rsv_spt=1&rsv_iqid=0x93941ee3000664a3&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=tb&rsv_sug3=16&rsv_sug1=7&rsv_sug7=101&rsv_t=50a060BrOUxFMNCQZ7yTWFxJtQiWeiyKDBl%2FJrvnUJ%2B7YuGKN0ehIOYdjeZZPzNIaU5G&rsv_sug2=0&rsv_btype=i&inputT=3751&rsv_sug4=4657';

$rows = array_map(function($item){
    return explode('=',$item);
},explode('&',$url));

//上面的array_map好像,不能设置key,所以呢,可能我们真正重构一下key:
$mapping = array_column($rows,'1','0');
var_dump($mapping);

实际上想想,我们经常处理从数据库传来的数据,也是类似的处理方式:

$mapping = array_column($flows,null,'num');
//这样,我们就可以从mapping中,用num获取到对应的 Row数据了。

map是我们经常用到的函数,但是呢,

但是,可但是,array_map的第一个参数,我

array_cloum

$rows是从数据库中取到的特定的列,我们经常需要获取特定的列作为key,某列作为value,该函数很适合。数据库也支持获取某列的功能。

array_cloum($rows,'val','key');
array_cloum($rows,'val');
//注意,下面功能很好,很适合将从数据库中取出的数据,重建key 。
array_cloum($rows,null,'key');