PHP常用函數(一):數組常用函數


1、list()

  list() 和 array() 一樣,不是一個函數,而是一個語言結構,作用是為一組變量賦值。

   PHP手冊中的介紹

    

  使用詳情 

<?php

//假設現在想為$a $b $c三個變量賦值,采用info數組中的內容

$info = ['this is a','this is b','this is c'];
list($a,$b,$c) = $info;

print<<<EOT
$a
<br>
$b
<br>
$c
<br>
EOT;

  運行結果

  

 

 

2、each()  

  

//實例代碼 遍歷$arr
<?php
    $arr = ['a'=>'this is a','b'=>'this is b','c'=>'this is c'];

    while($tmp = each($arr))
    {
        echo $tmp['key'].':'.$tmp['value'].'<br>';
    }

  運行結果:

  

 

3、數組指針操作

  • current()
  • key()
  • next()
  • prev()
  • end()
  • reset()
<?php
/*
1 current();  //讀取指針位置的內容
2 key();      //讀取當前指針指向內容的索引值
3 next();     //將數組中的內部指針指向下一單元
4 prev();     //將數組內部指針倒回一位
5 end();      //將數組內部指針指向最后一個元素
6 reset();    //將目前指針指向第一個索引位置
*/

$info = [
    'a' => 'this is a',
    'b' => 'this is b',
    'c' => 'this is c',
    'd' => 'this is d'
];

echo key($info).':'.current($info).'<br>';

next($info);
echo key($info).':'.current($info).'<br>';

end($info);
echo key($info).':'.current($info).'<br>';

reset($info);
echo key($info).':'.current($info).'<br>';

 

  運行結果:

  

 

4、鍵值操作函數

<?php

$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

echo 'keys:<br>';
//輸出info數組的所有鍵
var_dump(array_keys($info));
echo '<br>';
echo 'values:<br>';
//輸出info數組的所有值
var_dump(array_values($info));
echo '<br>';

//轉換info數組 鍵值互換
echo 'flips:<br>';
var_dump(array_flip($info));
echo '<br>';

//搜索apple
echo 'search:<br>';
echo 'apple key is :'.array_search('apple',$info);
echo '<br>';

//元素翻轉
echo 'reverse:<br>';
var_dump(array_reverse($info));
echo '<br>';

//檢查元素
echo 'in?<br>';
echo 'blog is in $info? '.var_dump(in_array('blog',$info));
echo '<br>';

//檢查鍵
echo 'key in?<br>';
echo 'b is in $info? '.var_dump(array_key_exists('b',$info));
echo '<br>';

//統計值的出現次數
$info[] = 'blog';
$info[] = 'blog';
echo 'value count<br>';
var_dump(array_count_values($info));
echo '<br>';

//刪除重復的值
echo 'before unique<br>';
var_dump($info);
echo '<br>after unique<br>';
var_dump(array_unique($info));

  運行結果:

 

 5、回調函數 

  示例數組:

$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

 

  array_filter();

  PHP手冊參考:

  

//array_filter();

//不使用flag
$filter_arr = array_filter($info,function($value){
    return strlen($value) == 3;
});
var_dump($filter_arr);
echo '<br>';
//使用flag
$filter_arr = array_filter($info,function($key){
    return in_array($key,['a','c']);
},ARRAY_FILTER_USE_KEY);
var_dump($filter_arr);
echo '<br>';

$filter_arr = array_filter($info,function($value,$key){
    return in_array($key,['a','c']) && $value == 'apple';
},ARRAY_FILTER_USE_BOTH);
var_dump($filter_arr);
echo '<br>';

  輸出結果:

 

  array_walk();

  PHP手冊參考:

  

//array_walk();

//不使用 userdata
array_walk($info,function($value,$key){
    echo "$key:$value   ";
});
echo "<br>";

//使用 userdata
array_walk($info,function(&$value,$key,$userdata){
    $value = $userdata.'-'.$value;
},'php');
var_dump($info);
echo "<br>";

  輸出結果:

 

  array_map();

  PHP手冊參考:

  

//array_map();
//單個數組
array_map(function($n){
    echo "$n  ";
},$info);
echo "<br>";
//多個數組
$info_2 = [
    'e' => 'egg',
    'f' => 'filco',
    'g' => 'good'
];
array_map(function($n1,$n2){
    echo "1:$n1-2:$n2  ";
},$info,$info_2);
echo '<br>';

  運行結果:

  

 

 

 6、數組分割


  array_slice()

  PHP手冊參考

  

  array_splice()

  PHP手冊參考:

  

  array_chunk()

   PHP手冊:

  

  

  測試代碼:

<?php
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

//array_slice()
echo 'array_slice:<br>';
print_r(array_slice($info,0,3));
echo '<br><hr>';

//array_splice();
echo 'array_splice:<br>';
echo '原數組:<br>';
print_r($info);
echo '<br>';
//替換掉前兩位
$tmp = array_splice($info,0,2,['king','queen']);
echo '替換后的數組:<br>';
print_r($info);
echo '<br>';
echo '替換掉數組:<br>';
print_r($tmp);
echo '<br><hr>';

//恢復原數組
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];
//array_chunk();
echo 'array_splice:<br>';
echo '替換后的數組:<br>';
$tmp = array_chunk($info,2);
var_dump($tmp);

  運行結果:

 

 

7、數組運算

   測試代碼:

  

<?php
$info = [
    'a' => 'apple',
    'b' => 'blog',
    'c' => 'cat',
    'd' => 'dog'
];

$info_2 = [
    'e' => 'apple',
    'f' => 'egg',
    'g' => 'java',
    'h' => 'cat'
];

$info_num = [120,10,1];

//array_sum
echo 'array_sum:<br>';
echo array_sum($info_num);
echo '<br>';
echo array_sum($info); //只對元素中的數值進行求和
echo '<br><hr>';

//array_merge
echo 'array_merge:<br>';
print_r(array_merge($info,$info_2,$info_num));
echo '<br><hr>';

//array_diff - 返回在info中但不在其他arr中的值
echo 'array_diff:<br>';
print_r(array_diff($info,$info_2));
echo '<br><hr>';

//array_intersect - 返回在info中也在在其他arr中的值
echo 'array_intersect:<br>';
print_r(array_intersect($info,$info_2));
echo '<br><hr>';

  運行結果:

 

8、數組的棧和隊列操作

 

9、數組的排序操作

10、其他常用函數 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM