首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 多維陣列過濾與轉換:二維三維陣列實用技巧

     編輯:PHP 綜合知識

二維陣列過濾空值

$arr = [
    ['a', '', 'b', null],
    ['', 'c', '', 'd']
];

// 方法一:array_map + array_filter
$res = array_map(function($row) {
    return array_filter($row, function($v) {
        return $v !== '';
    });
}, $res);

// 方法二:array_walk(需引用結果陣列)
$res = [];
array_walk($arr, function($row, $key) use (&$res) {
    $res[$key] = array_filter($row, function($v) {
        return !in_array('', $v);
    });
});

三維陣列轉二維陣列

$data = [
    0 => [0 => ['bid' => 41, 'name' => '教官']],
    1 => [0 => ['bid' => 6, 'name' => '虎子']]
];

// 方法一:foreach 簡單明瞭
$new = [];
foreach ($data as $item) {
    $new[] = $item[0];
}

// 方法二:雙重 foreach
$new = [];
foreach ($data as $group) {
    foreach ($group as $item) {
        $new[] = $item;
    }
}

進階過濾:移除特定值

$filtered = array_map(function($row) {
    return array_filter($row, function($v) {
        return !in_array($v, ['', null, false], true);
    });
}, $data);

函數式風格封裝

function filter_multi_array(array $array, callable $callback) {
    return array_map(function($item) use ($callback) {
        return is_array($item) ? filter_multi_array($item, $callback) : $callback($item);
    }, $array);
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved