【已解决】PHP中去掉数组的第一个元素获取余下所有元素作为新数组

【背景】

折腾:

【已解决】将Log函数的参数改变为类似于sprintf的动态个数的可变参数

期间,需要:

处理一个数组,去掉第一个元素,将余下的元素作为数组。

arguments: 3
Argument 0 = str1=%s,num1=%d
Argument 1 = hello crifan
Argument 2 = 123

即:

去掉第一个arg0,把余下的arg1和arg2变成一个数组。

希望能有个arr1.pop()

就去掉第一个。

然后就剩下其他元素,即可。

 

【折腾过程】

1.搜:

php array operation

参考:

PHP: 数组 函数 – Manual

->

PHP: split – Manual

2.搜:

php array pop first

参考:

PHP: array_shift – Manual

貌似是我要的。

去试试。

 

        echo "Number of arguments: " . func_num_args() . "<br />";
        for($i = 0 ; $i < func_num_args(); $i++) {
            echo "Argument $i = " . func_get_arg($i) . "<br />";
        }
       
        $logArgList = func_get_args();
        print_r("logArgList=".$logArgList."<br />");
        $logArgFirst = array_shift($logArgList);
        print_r("logArgFirst=".$logArgFirst."<br />");
        print_r("remaing logArgList=".$logArgList."<br />");
        $logFormat = $logArgFirst;
        $logArgs = $logArgList;
     
        $logFormatedContent = vsprintf($logFormat, $logArgs);
        print_r("logFormatedContent=".$logFormatedContent."<br />");

结果:

arguments: 3
Argument 0 = str1=%s,num1=%d
Argument 1 = hello crifan
Argument 2 = 123
logArgList=Array
logArgFirst=str1=%s,num1=%d
remaing logArgList=Array
logFormatedContent=str1=hello crifan,num1=123

也就实现了所要的效果了。

 

【总结】

PHP中,去掉数组array的第一个元素,并且将余下元素组成新数组,可以用:

$firstElement = array_shift($oldArr);
$newArr = $oldArr;

即可,类似于pop的效果。



发表评论

电子邮件地址不会被公开。 必填项已用*标注

无觅相关文章插件,快速提升流量