溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

PHP 操作數(shù)組的常用函數(shù)

發(fā)布時(shí)間:2020-06-18 01:36:18 來(lái)源:網(wǎng)絡(luò) 閱讀:541 作者:津沙港灣 欄目:web開(kāi)發(fā)
/*
 * 數(shù)組的常用函數(shù)
 * 1.數(shù)組的鍵/值操作函數(shù)
 * array_values()— 返回?cái)?shù)組中所有的值
 * array_keys()返回?cái)?shù)組中部分的或所有的鍵名
 * in_array() 檢查數(shù)組中是否存在某個(gè)值 如果找到 needle 則返回 TRUE,否則返回 FALSE。
 * array_search — 在數(shù)組中搜索給定的值,如果成功則返回相應(yīng)的鍵名
 * array_key_exists — 檢查給定的鍵名或索引是否存在于數(shù)組中
 *  array_flip — 交換數(shù)組中的鍵和值
 *  array_reverse — 返回一個(gè)單元順序相反的數(shù)組
 *2.數(shù)組中統(tǒng)計(jì)數(shù)組元素
 *count — 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù) 
 *array_count_values — 統(tǒng)計(jì)數(shù)組中所有的值出現(xiàn)的次數(shù)  返回一個(gè)關(guān)聯(lián)數(shù)組,用 input 數(shù)組中的值作為鍵名,該值在數(shù)組中出現(xiàn)的次數(shù)作為值。
 *array_unique — 移除數(shù)組中重復(fù)的值 Returns the filtered array. 
 *3.使用回調(diào)函數(shù)處理數(shù)組的函數(shù)
 *array_filter — 用回調(diào)函數(shù)過(guò)濾數(shù)組中的單元 
 *array_walk — 使用用戶(hù)自定義函數(shù)對(duì)數(shù)組中的每個(gè)元素做回調(diào)處理 
 *array_map — 將回調(diào)函數(shù)作用到給定數(shù)組的單元上  
 *
 */
 //array_values — 返回?cái)?shù)組中所有的值
$arr = ['王小明','津沙港灣','小香港'];
$a=array_values($arr);
var_dump($a);
$lamp=array(
    'OS'=>'Linux',
    'WebServer'=>'Apache',
    'DB'=>'MySQL',
    'Language'=>'PHP',
    'lang'=>'PHP',
    'num1'=>10,
    'num2'=>'10',
//    'girl'=>null
);
var_dump(array_values($lamp));

list($OS,$WebServer,$DB,$Language) = array_values($lamp);
echo $OS;
$b=array_keys($lamp);//返回所有的鍵名
$c=array_keys($lamp,'Apache');//返回Apache鍵名
$d=array_keys($lamp,10,true);//返10 加true 表示10的值和類(lèi)型都要相同。=== 必須是整型  
var_dump($b);
var_dump($d);

//in_array
if(in_array('MySQL',$lamp)){
    echo '在數(shù)組中';
}else{
    echo '不在數(shù)組中';
}

//array_search — 在數(shù)組中搜索給定的值,如果成功則返回相應(yīng)的鍵名 
var_dump(array_search('MySQL',$lamp));

//array_key_exists — 檢查給定的鍵名或索引是否存在于數(shù)組中
if(array_key_exists('DB',$lamp)){
    echo '在數(shù)組中';
}else{
    echo '不在數(shù)組中';
}
//array_key_exists判斷數(shù)組的值為null返回true
if(array_key_exists('girl',$lamp)){
    echo '在數(shù)組中';
}else{
    echo '不在數(shù)組中';
}
//isset() 判斷數(shù)組的值為null返回false
if(isset($lamp['girl'],$lamp)){
    echo '在數(shù)組中';
}else{
    echo '不在數(shù)組中';
}

//array_flip — 交換數(shù)組中的鍵和值
var_dump(array_flip($lamp));

//array_reverse — 返回一個(gè)單元順序相反的數(shù)組 
var_dump(array_reverse($lamp));
//如果設(shè)置為 TRUE 會(huì)保留數(shù)字的鍵。 非數(shù)字的鍵則不受這個(gè)設(shè)置的影響,總是會(huì)被保留。 
$arr1 = [
    1=>1,
    3=>3,
    5=>4    
];
var_dump(array_reverse($arr1,true));
============================================================================
 //count — 計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù) 
$str='I am yangyihai';
var_dump(count($str));//int 1
$str1=[
  1=>[1,2,3],
  2=>[2,4,6]
];
echo count($str1);//2  默認(rèn)統(tǒng)計(jì)外層數(shù)組
echo count($str1,1);//8  如果可選的 mode 參數(shù)設(shè)為 COUNT_RECURSIVE(或 1),count() 將遞歸地對(duì)數(shù)組計(jì)數(shù)  外層加內(nèi)層

$str2 = [1,1,2,2,2,3,5,7];
//array_count_values — 統(tǒng)計(jì)數(shù)組中所有的值出現(xiàn)的次數(shù)  返回一個(gè)關(guān)聯(lián)數(shù)組,用 input 數(shù)組中的值作為鍵名,該值在數(shù)組中出現(xiàn)的次數(shù)作為值。
var_dump(array_count_values($str2));

//array_unique — 移除數(shù)組中重復(fù)的值 Returns the filtered array. 
var_dump(array_unique($str2));
//array_filter — 用回調(diào)函數(shù)過(guò)濾數(shù)組中的單元 
$arr = [1,2,4,null,"",-5-4-2,-4,3,false,true,3,4,'a'];
var_dump($arr);
var_dump(array_filter($arr));
function calltest($a){
    if($a>=0){
        return true;
    }else{
        return false;
    }
}

function odd($var){
   return($var &1);//奇數(shù) 跟1取與操作
}
$arr1 = [1,2,3,4,5,6,7,8,9];
//var_dump(array_filter($arr,'calltest'));
var_dump(array_filter($arr1,'odd'));
var_dump(array_values(array_filter($arr1,function ($var){
    return(!($var & 1));//偶數(shù)
})));

//array_walk — 使用用戶(hù)自定義函數(shù)對(duì)數(shù)組中的每個(gè)元素做回調(diào)處理
function walkcall(&$var){
    echo $var=$var*$var.' ';
}
//典型情況下 funcname 接受兩個(gè)參數(shù)。array 參數(shù)的值作為第一個(gè),鍵名作為第二個(gè)。 
function myfun($value,$key){
    echo "{$key}===>{$value}";
}
array_walk($arr1, 'walkcall');
array_walk($arr1, 'myfun');
//使用匿名函數(shù)
array_walk($arr1,function(&$value,$key){
    $value=$value+1;
});

array_walk($arr1,function(&$value,$key,$str){
    $value=$value+1;
    echo $key.$str.$value;
},'————');
//var_dump($arr1);
function cube($var){
    return $var*$var*$var;
}
$arr2 = [1,2,3,4,5,6,7,8,9];
var_dump(array_map('cube',$arr2));
$arr3 = [1,2,3,4];
$arr4 = ['one','two','three','four'];
function mapcall($a,$b){
    echo "$a-----$b<br/>";
}
$rarr=array_map('mapcall', $arr3,$arr4);
var_dump($rarr);

$rarr1=array_map(null, $arr3,$arr4);
var_dump($rarr1);


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI