使用php某些函數的注意事項(unset,array_column,array_push)

1,unset使用後數據結構改變

foreach ($getBlockData as $i => $val) {
    if (!in_array($val['tid'], $tid)) {
        unset($getBlockData[$i]);
    }
}

返回結果:

使用array_values函數解決返回結果爲:

查看最後一條sql

//打印語句 dump( Db::table('table_name')->getLastSql()); 

2,array_column函數獲取二維數組的某一個字段生成一個新的一維數組

=>想必大家都應該看到了我獲取了title生成了一個新的以爲數組、、

3,array_push的用法

        $array  = array('goods'=>null,'time'=>'11123');
        array_push($array['goods'],'飛機');
        print_r($array);
        array_push($array['goods'][],'飛機');
        print_r($array);
        $array['goods'] ='飛機';
        print_r($array);

        echo PHP_EOL;
        echo PHP_EOL;
        echo PHP_EOL;

        $array  = array('goods'=>[],'time'=>'11123');
        array_push($array['goods'],'飛機');
        print_r($array);
        array_push($array['goods'][],'飛機');
        print_r($array);
        $array['goods'] ='飛機';
        print_r($array);

Array
(
    [goods] => 
    [time] => 11123
)
Array
(
    [goods] => Array
        (
            [0] => 
        )

    [time] => 11123
)
Array
(
    [goods] => 飛機
    [time] => 11123
)

Array
(
    [goods] => Array
        (
            [0] => 飛機
        )

    [time] => 11123
)
Array
(
    [goods] => Array
        (
            [0] => 飛機
            [1] => 
        )

    [time] => 11123
)
Array
(
    [goods] => 飛機
    [time] => 11123
)
 

當array_push的第一個參數不是數組的時候,值將一直無法被添加進去

官網上的說明:

說明

array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int

array_push() 將 array 當成一個棧,並將傳入的變量壓入 array 的末尾。array 的長度將根據入棧變量的數目增加。和如下效果相同:

<?php
$array[] = $var;
?>

並對每個傳入的值重複以上動作。

Note: 如果用 array_push() 來給數組增加一個單元,還不如用 $array[] = ,因爲這樣沒有調用函數的額外負擔。

Note: 如果第一個參數不是數組,array_push() 將發出一條警告。這和 $var[] 的行爲不同,後者會新建一個數組。

4.取整函數用法

 floor(3.14159);    // 3
 floor(3.64159);    // 3
 floor(-3.64159);    // -4

 ceil(3.14159);  // 4
 ceil(3.64159);  // 4

 round(3.14159);      // 3
 round(3.64159);      // 4
 round(3.64159, 0);   // 4
 round(3.64159, 2);   // 3.64
 round(5.64159, 3);   // 3.642
 round(364159, -2);   // 364200

 intval(3.14159);  // 3
 intval(3.64159);  // 3
 intval('ruesin'); //0
 echo intval((0.1+0.7)*10);//7 特殊情況
 echo intval((0.2+0.6)*10);//8
 echo intval((0.1+0.6)*10);//7

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章