獲取二維數組中指定字段的值,並且將值組成一維數組


從數據庫獲取多個數據時往往是二維數組,但是有時候我們需要獲取數組里面的某一鍵的數據。有兩種方法:foreach()循環和Array()函數

示例數組,獲取二維數組里面的device_token的值並且放在一維數組里面:

$arr = array(
0 => array(
'device_token' => 'AnBWyVMD1u0qKkNrD44h8BaFjROX5qCRgDjEG6CCFtFd',
'shebei' => 'android'
),
1 => array(
'device_token' => 'Ap0pTms6pvxMtsvrqCvzbqknLkO6KEIJnk3x9iGYlgd8',
'shebei' => 'android'
),
2 => array(
'device_token' => '6aa7d1356e75a56758a0fdc40b776d0cab7fa8889de546106888d3b3c5eee872',
'shebei' => 'ios'
),
3 => array(
'device_token' => '9e9854b6b6f02c58aa8838619b25e18139558dca9f69e2abbc6f9b88630ff269',
'shebei' => 'ios'
),
4 => array(
'device_token' => 'ApKqVYFWWXNds9CnveE24ysTZ942nw5P2o5lE6KJegqg',
'shebei' => 'android'
),
5 => array(
'device_token' => '',
'shebei' => 'ios'
),
  6 => array(
    'device_token' => 0,
    'shebei' => 'android'
  )
);

一、foreach()循環
$IOS_token = array();
$android_token = array();
if(!empty($arr) && count($res) != 0){
foreach($arr as $key => $val){
if($val['shebei'] == 'android'){
$android_token[] = $val['device_token'];
}elseif($val['shebei'] == 'ios'){
$IOS_token[] = $val['device_token'];
}
}
}

二、Array()函數
$ios_res = array_column(array_filter($arr,function($val){
if($val['shebei'] == 'ios'){
return $val['device_token'];
}else{
return false;
}
}),'device_token');
$android_res = array_column(array_filter($arr,function($value){
if($value['shebei'] == 'android'){
return $value['device_token'];
}else{
return false;
}
}),'device_token');

返回結果一維數組:
Array
(
    [ios] => Array
        (
            [0] => 6aa7d1356e75a56758a0fdc40b776d0cab7fa8889de546106888d3b3c5eee872
            [1] => 9e9854b6b6f02c58aa8838619b25e18139558dca9f69e2abbc6f9b88630ff269
        )

    [android] => Array
        (
            [0] => AnBWyVMD1u0qKkNrD44h8BaFjROX5qCRgDjEG6CCFtFd
            [1] => Ap0pTms6pvxMtsvrqCvzbqknLkO6KEIJnk3x9iGYlgd8
            [2] => ApKqVYFWWXNds9CnveE24ysTZ942nw5P2o5lE6KJegqg
        )

)

原始數組$arr中ios其實有三個,但是有一個是空值,所以array_filter()函數給過濾掉了;android分類下的0也被過濾掉了。

注意點:array_filter會過濾掉任何等於FALSE的值,也就是說  0值,空字符串,null,都會被過濾
 


免責聲明!

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



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