一,一维数组增加元素
$ArrayList = ArrayListay();
Array_push($ArrayList, el1, el2 ... eln);
但其实有一种更直接方便的做法:
代码如下 | 复制代码 |
$ArrayList = ArrayListay(); |
两种方法得出的效果是一样的
添加一个或多个元素
代码如下 | 复制代码 |
<?php |
注:如果第一个参数不是数组,ArrayListay_push() 将发出一条警告
在数组开头插入元素
1.ArrayListay_unshift
使用方法
代码如下 | 复制代码 |
<?php 输出 ArrayListay |
数组添加关联元素使用使用ArrayListay_push或者ArrayListay_unshift是行不通了,那么我们要如何增加呢
使用ArrayListay_merge方法实现类似ArrayListay_unshift在开头添加元素的功能
代码如下 | 复制代码 |
<?php |
2.+操作符
代码如下 | 复制代码 |
<?php |
输出结果与使用ArrayListay_merge方法一样。
3.在元素结尾添加关联数组元素
代码如下 | 复制代码 |
<?php |
至于有些朋友说Array_push增加元素与直接$a[]='a'这种性能要差点之外其它的都是一样,如果只要一个值就没可比性了哦。
在php中trim函数是删除字符串中空格的并不是html代码的nbsp空格了,那么我们可不可以使用期trim来删除呢,其实稻简单下面我们来看看吧。此处所指的nbsp是实体,而不是nbsp四个字符
代码如下 | 复制代码 |
$str = " abc"; $converted = strtr($str, array_flip(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES))); var_dump($converted); // 这儿才是要处理的字符串,上面的都是准备工作 |
在处理此问题的时候,经历了一番波折,先是var_dump出来,但是和正常的字符串无异。
后来又使用escape尝试输出,发现是xa0,于是就想trim($converted, "xa0"),无果。
最后在php手册的trim函数下的第一个评论发现了解决方案。
代码如下 | 复制代码 |
var_dump(trim($converted, chr(0xc2) . chr(0xa0))); |
其实要删除字符串中的 我们压根不需要这么复杂了,只要使用str_replace()就可搞定了。
代码如下 | 复制代码 |
$a =" www.111cn.net"; |
结果为
www.111cn.net
array_merge()函数在php中是对数据进行合并的,可以把多个数组合成一个数组,并且不改变原数组的值了,但今天我在使用array_merge合并数组时碰到几个小细节上的问题,下面我举例子给各位朋友看看。1.array_merge()合并
例子
代码如下 | 复制代码 |
$array = array('a'=>'bb'); 输出结果为 Array ( [a] => bb [b] => cc ) |
上面因为都是数组就没有问题了,假如我们把$array 设置不是数组看看什么情况
代码如下 | 复制代码 |
|
运行后结果
Warning: array_merge() [function.array-merge]: Argument #1 is not an array in E:test1.php on line 4
告诉我们必须是要一个数组了,那么这个我就有多种方法来解决,
1.使用is_array() 进行判断了,但是会发现如果合并数组比较多一个个判断不合理,后来发现可以转换数据类型
代码如下 | 复制代码 |
$array = 1;//array('a'=>'bb'); 输出结果不报错了 Array ( [0] => 1 [b] => cc ) |
他自动把数字1转换成了数组了,所以大家在使用时一定要注意这些细节哦。
下面给大家总结了两种实现金字塔打印的方法,一种是利用了自定义函数,另一种是利用了for循环了,其实两都用到了只是前者高级一些吧。自定义函数实现金字塔
代码如下 | 复制代码 |
<?php /** * 金字塔 * string fun_py(int $rows = 9, bool $sort=true) * $rows 表示行数 必须为整数 并且必须在1-20之间 * $sort 表示排序 true表示正序 FALSE表示倒序 */ function fun_py($rows = 9, $sort=true){ if ($rows<1 || $rows>20){ return "必须在1-20之间"; } if($rows!=(int)($rows)){ return '行数 必须为整数'; } $str=""; if($sort){ for($i=1;$i<=$rows;$i++){ $str.= '<br/>'; for($j=1;$j<=$i;$j++){ if($j==1){ for($k=1;$k<=($rows-$i);$k++){ $str.= ' '; } } $str.= '*'.' '; } } } else{ for($i=$rows;$i>=1;$i--){ $str.= '<br/>'; for($j=1;$j<=$i;$j++){ if($j==1){ for($k=1;$k<=($rows-$i);$k++){ $str.= ' '; } } $str.= '*'.' '; } } } return $str; } echo fun_py(9,false); ?> |
下面再实现个金字塔形状物,通用也是用到for循环
代码如下 | 复制代码 |
<?php |
同样想让这个金字塔倒立起来呢
代码如下 | 复制代码 |
<?php |
代码如下 | 复制代码 |
<?php /** * * @author http://www.111cn.net * Created on 2014-4-1 * @param array $array * @param int [optional] $length * @return array */ function mostRepeatedValues($array,$length=0){ if(empty($array) or !is_array($array)){ return false; } //1. 计算数组的重复值 $array = array_count_values($array); //2. 根据重复值 倒排序 arsort($array); if($length>0){ //3. 返回前 $length 重复值 $array = array_slice($array, 0, $length, true); } return $array; } $array = array(1, 1, 1, 54, 3,4, 3,4, 3, 14, 3,4, 3,7,8,9,12,45,66,5,7,8,9,2,45); $counts=mostRepeatedValues($array,5); print_r($counts); /* Array ( [3] => 5 [4] => 3 [1] => 3 [9] => 2 [45] => 2 ) */ ?> |