PHP 一维数组根据某个值截断

PHP 一维数组根据某个值截断

场景

1.有一个数组 $arr = [‘123’=>1,‘253’=>5,‘173’=>0,‘143’=>5,‘145’=>0],在出现第一个值为0 的时候截断后面的键值。得到结果 $arr = [‘123’=>1,‘253’=>5]

截断某个值后面所有键值

<?php
	$arr = ['123'=>1,'253'=>5,'173'=>0,'143'=>5,'145'=>0];
	static $res=[];
	foreach($arr as $key=>$v){
		if($v != 0){
		$res[$key] = $v;
		}else{
		break;
		}	
	}
print_r($res);
输出 :$arr = ['123'=>1,'253'=>5]
--------------------- 

对比用法 unset

//unset 表示销毁某个值,但是数组索引不会重新排列
<?php
	$arr = ['123'=>1,'253'=>5,'173'=>0,'143'=>5,'145'=>0];
	unset($arr['173'])
	print_r($arr);
输出 :Array ( [123] => 1 [253] => 5 [143] => 5 [145] => 0 )
--------------------- 

对比用法 array_splice

//array_splice表示销毁某个值,数组索引重新排列
<?php
	$arr = ['123'=>1,'253'=>5,'173'=>0,'143'=>5,'145'=>0];
	array_splice($arr,1,1);
	print_r($arr);
输出 :Array ( [0] => 1 [1] => 0 [2] => 5 [3] => 0 )

对比用法 array_filter

//array_splice表示过滤某个值	-(过滤空数组,或者 0 ,false)
<?php
	$arr = ['123'=>1,'253'=>5,'173'=>0,'143'=>5,'145'=>0,'142'=>''];
	$arr = array_filter($arr);
  	print_r($arr);
输出 :Array ( [123] => 1 [253] => 5 [143] => 5 )

--------------------- 
//自定义过滤
$arr = ['123'=>1,'253'=>2,'173'=>0,'143'=>5,'145'=>3,'142'=>''];
$resArr=array_filter($arr,'fun_odd');
print_r($resArr);
function fun_odd($arr)
{
    if ($arr % 2 == 1) {
        return $arr;
    }
}
输出 :Array ( [123] => 1 [143] => 5 [145] => 3)
--------------------- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值