You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中删除unit为0的数组元素并重排数组键名?

需求说明

我有一个多层数组结构,希望实现:当子数组的unit值为0时,删除该子数组元素,并重新排列数组键名(让原键名1的元素变为新的键名0,以此类推)。

原始数组结构
Array ( 
    [0] => Array ( [unit] => 10 [harga] => 15000 ) 
    [1] => Array ( [unit] => 7 [harga] => 10000 ) 
    [2] => Array ( [unit] => 12 [harga] => 123123 ) 
)
当前实现代码片段(不完整)
$jumlah_penjualan = $data->unit;
while ($jumlah_penjualan > 0) {
    $persediaan_pertama = $persediaan[0]['unit'];
    $harga_persediaan = $persediaan[0]['harg
解决方案

要实现需求,你可以通过过滤数组+重置索引的方式完成,这里提供两种简洁的实现方式:

方式一:手动遍历过滤

// 假设你的原数组是 $persediaan
$filteredPersediaan = [];
foreach ($persediaan as $item) {
    // 只保留 unit 不为0的子数组
    if ($item['unit'] != 0) {
        $filteredPersediaan[] = $item;
    }
}
// $filteredPersediaan 就是处理后的数组,键名已经自动从0开始连续排列

方式二:使用array_filter + array_values

// 过滤掉unit为0的元素
$filtered = array_filter($persediaan, function($item) {
    return $item['unit'] != 0;
});
// 重置数组索引,让键名从0开始连续
$filteredPersediaan = array_values($filtered);

这两种方法都能精准达成需求:移除所有unit=0的子数组,同时重新排列键名,确保索引是连续的0、1、2...

内容的提问来源于stack exchange,提问作者Mochamad Ramdanny Lukman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:25:48