php中常用的数组函数

创建索引数组

$arr =array('name'=>'molaifeng','age'=>'25','height'=>'167');

foreach($arr as $value) {

    echo $value.' ';

}

echo '<hr />';

引用字符做索引的数组单元时,索引必须加单引号

echo $arr['name'],'<hr />';


判断某数组是否为空

$arr =  array();

echo empty($arr)?'该数组为空<hr/>':'该数组不为空<hr/>';

通过foreach改变数组里的值

$arr = array(1,2,3,4,5,6);

foreach($arr as $index=>$value) { //这个方法特别适用于自动生成update语句 

    echo $arr[$index] = $value*2;

    echo ' ';

}

echo '<hr />';

判断索引是否在该数组内

$arr =array('name'=>molaifeng,'age'=>'25','height'=>'167');

echo array_key_exists('age',$arr)?'存在<hr />':'该索引不存在<hr />';

判断值是否在该数组内

echo in_array('25',$arr)?'存在<hr />':'该值引不存在<hr />';

分别打印数组的键(索引)和值

print_r(array_keys($arr));

echo '<br />';

print_r(array_values($arr));

echo '<hr />';

计算数组的长度,对于其他类型 返回 1,对于null ,返回 0

echo '该数组的长度为:',count($arr),'<br />';

echo 'count里不是数组而是字符串',count('string'),'<br />';

echo 'count里不是数组而是空',count(null),'<hr />';

通过指针指向数组的单元的函数 current,next,prev,end,reset,key

echo '打印当前的值,也就是索引为0或是数组的第一个值:',current($arr),'<br />';

echo '打印下一个值:',next($arr),'<br />';

echo '打印最后的值:',end($arr),'<br />';

echo '打印上一个值:',prev($arr),'<br />';

echo '重置:',reset($arr),'<br />';

echo '显示当前的索引:',key($arr),'<hr />';

list函数,首先把list的内部的变量与array中的单元

不管数组中有没有此单元按顺序,从array[0],逐一对应.

一一对应之后,从右往左赋值.

list($a,$b) =array('name','molaifeng');;

echo $a,' ',$b,'<hr />';

each函数,是把当前的键/值读出来,并放到一个数组中,并把数组的内部指针往尾部移一下.

//echo返回的是诸如Array ( [1] => molaifeng [value] => molaifeng [0] => name [key] => name ) 

$tmp = each($arr);

print_r($tmp);

echo '<br />',$a,' ',$b,'<hr />';

echo '<span style="color:red">结合list和each模拟foreach</span><br />';

$arr =array('name'=>'molaifeng','age'=>'25','height'=>'167');

while($temp = each($arr)) {

  list($key,$value) = $temp;

  echo $key,'--',$value,'<br />';

}

echo '<hr />';

array_flip 交换数组中的键与值
print_r(array_flip($arr));

echo '<hr />';

range(low,hight),依次打印从low到high或从high到low

print_r(range(1,10));

echo '<br />';

print_r(range(10,1));

echo '<hr />';

结合range和array_sum计算从1到100的值

echo array_sum(range(1,100)),'<br />';

$arr = array('a','b',1,2,3);

echo array_sum($arr),'<hr />';

 array_push ,往数组里追加单元,将一个或多个单元压入数组的末尾(入栈),推荐直接操作数组来追加,如下

$arr =array('name'=>'molaifeng','age'=>'25','height'=>'167');

array_push($arr,'weight','hobby');

$arr[] = 'new'; //记住挺有用的

print_r($arr);

echo '<hr />';

array_pop — 将数组最后一个单元弹出(出栈)

array_pop($arr);

print_r($arr);

echo '<hr />';

array_shift — 将数组开头的单元移出数组(出栈),并返回该单元的值
echo array_shift($arr),'<br />';

print_r($arr);

echo '<hr />';

array_unshift — 在数组开头插入一个或多个单元(入栈)

//所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。 

array_unshift($arr,'molaifeng');

print_r($arr);

echo '<hr />';

给数组排序,把数组单元的由小到大排序,并且重新排key,从0开始

$arr = array(9,11,1,2,3,4);//关联数组排序

sort($arr);

print_r($arr);

echo '<br />';

$arr = array('a'=>13,'b'=>2,'c'=>1,'d'=>9,'d'=>5,'e'=>0);

sort($arr);//关联数组排序,但会丢失字符索引

print_r($arr);

echo '<br />';

$arr = array('a'=>13,'b'=>2,'c'=>1,'d'=>9,'d'=>5,'e'=>0);

asort($arr);//关联数组排序,保留字符索引

print_r($arr);

echo '<hr />';

把两个数组合并

$arr1 = array(9,11,1,2,3,4);

$arr2 = array('a'=>13,'b'=>2,'c'=>1,'d'=>9,'d'=>5,'e'=>0);

print_r(array_merge($arr1,$arr2));

echo '<hr />';

求来个数组的交集

$arr1 = array(9,11,1,2,3,4);

$arr2 = array(1,2,3,4,5);

print_r(array_intersect($arr1,$arr2));

echo '<hr />';

array_unique — 移除数组中重复的值

$arr = array(9,11,1,2,3,9,2,3,4);

print_r(array_unique($arr));

echo '<hr />';

array_reverse — 返回一个单元顺序相反的数组 print_r(array_reverse($arr));

echo '<hr />';

手动写个关于数组倒序的方法

$arr = array(1,2,3,4,5);

function fan($arr) {

    $temp = array();

    foreach($arr as $v) {

        array_unshift($temp,$v);

    }

    return $temp;

}

print_r(fan($arr));

echo '<hr />';

使用list调用数组的单元

$arr = array('a','b');

print_r($arr);

echo '<br />';

list($arr[1],$arr[0]) = ($arr = $arr);

print_r($arr);

echo '<hr />';

把数组转化为字符串、把字符串转换为数组

$arr = array('a','b');

$str = implode(',',$arr);

echo '$arr转换后的字符串为:',$str,'<br />';

$str = explode(',',$str);

echo '$str转换后的数组为:';

print_r($str);

echo '<hr />';

echo '<span style="color:red">一道腾迅面试题,将1234567890转换成1,234,567,890 每3位用逗号隔开的形式</span><br />';

$str = '1234567890';

echo '第一种方法,调用系统函数直接转换:',number_format($str),'<br />';

echo '第二种方法,结合strrev,chunk_split,trim:',strrev(trim(chunk_split(strrev($str),3,','),',')),'<br />';

echo '第三种方法,数组和字符串相结合:',strrev(implode(',',str_split(strrev($str),3))),'<br />';

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值