每日五個 PHP 函式(2)

finecho發表於2019-02-20

上面文章《每日五個 PHP 函式》已爆炸,更新不了了,哈哈

大佬們可以留言函式練習的題目呀,每天找個小練習好吃虧,哈哈

2019/03/10

至此已經回顧完啦

2019/03/08

2019/03/07

2019/03/06

2019/03/05

2019/03/04

2019/03/02

2019/03/01

2019/02/28

2019/02/27

2019/02/26

2019/02/25

抓緊複習

2019/02/24

2019/02/23

  • 今日小練習

利用 currentnext 完成陣列的遍歷

$fruits = ['apple', 'strawberry', 'pear', 'orange'];

while ($curFruit = current($fruits)) {
    echo "current fruit is " . $curFruit . "\n"; 

    next($fruits);
}

// 輸出:
current fruit is apple
current fruit is strawberry
current fruit is pear
current fruit is orange

/*
說明:每個陣列中都會有一個內部的指標指向它的”當前“元素,初始指向陣列中第一個元素。

1. current()返回陣列中當前元素(指標指向的元素)的值,該函式不會移動指標

以下函式均有移動指標的作用:

2. reset()將內部指標指向陣列中的第一個元素,如果成功,返回陣列第一個元素的值,否則返回 false
3. end()將內部指標指向陣列中最後一個元素,並返回元素的值
4. next()將內部指標指向陣列中下一個元素,如果成功,返回元素的值,否則返回 false
5. prev()將內部指標指向陣列中上一個元素,如果成功,返回元素的值,否則返回 false
6. each()返回當前元素的鍵和值,並向前移動指標 
*/

2019/02/22

  • 今日小練習

在尋找中發現了這篇文章,還挺有意思的,大夥可以看看,《 巧妙利用php陣列函式,解決二維陣列查詢問題 》

2019/02/21

  • 今日小練習
// 說明:array_merge 與 + 的區別

$arrOne = array("a", "b", "c");
$arrTwo = array("b", "d", "e");

$arrAdd = $arrOne + $arrTwo;
$arrMerge = array_merge($arrOne, $arrTwo);

print_r($arrAdd);
print_r($arrMerge);

// 依次輸出:
Array
(
    [0] => a
    [1] => b
    [2] => c
)

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => b
    [4] => d
    [5] => e
)

$arrThree = array("a" => "a", "b" => "b", "c" => "c");
$arrFour = array( "b" => "b2", "d" =>  "d", "e" => "e");

$arrAdd = $arrThree + $arrFour;
$arrMerge = array_merge($arrThree, $arrFour);

print_r($arrAdd);
print_r($arrMerge);

// 依次輸出:
Array
(
    [a] => a
    [b] => b
    [c] => c
    [d] => d
    [e] => e
)
Array
(
    [a] => a
    [b] => b2
    [c] => c
    [d] => d
    [e] => e
)

$arrFive = array(1 => "a", 2 => "b", 4 => "c");
$arrSix = array( 3 => "b", 5 =>  "d", 4 => "e");

$arrAdd = $arrFive + $arrSix;
$arrMerge = array_merge($arrFive, $arrSix);

print_r($arrAdd);
print_r($arrMerge);

// 依次輸出:
Array
(
    [1] => a
    [2] => b
    [4] => c
    [3] => b
    [5] => d
)
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => b
    [4] => d
    [5] => e
)

從上面的例子中可以看到 array_mergekey 為數字的時候完全免疫,直接累加了,且對所有 key 重置了, 而 + 對數字和字串都不免疫,key 值相同的前面的覆蓋後面的。array_merge 對相同的 key (非數字),後面的覆蓋前面的。

2019/02/20

  • 今日小練習
// 說明:取出 users 中所有 user 的 id (users 可能是一個包含使用者資訊的陣列,也可能是一個 id 陣列)

$users = array(2, 3);
// Or
$users = array(array('id' => 2, 'name' => 'Lhao', 'age' => 24), array('id' => 3, 'name' => 'Wjh', 'age' => 24));

if (is_array($first = \reset($users)) && \array_key_exists('id', $first)) {
    $users = \array_column($users, 'id');
}
print_r($users);

// 輸出:
Array
(
    [0] => 2
    [1] => 3
)
本作品採用《CC 協議》,轉載必須註明作者和本文連結

finecho # Lhao

相關文章