无法使用PHP删除JSON中的元素

无法使用PHP删除JSON中的元素,php,json,Php,Json,我有个问题。我需要使用PHP根据键值从JSON中删除元素,但它有一些问题。我在下面解释我的代码 <?php $comment = json_encode(array(array('day_id' => '', 'comment' => ''),array('day_id' => '2', 'comment' => 'hello'), array('day_id' => '3', 'comment' => 'vodka3'),array('day_id'=

我有个问题。我需要使用PHP根据键值从JSON中删除元素,但它有一些问题。我在下面解释我的代码

<?php
$comment = json_encode(array(array('day_id' => '', 'comment' => ''),array('day_id' => '2', 'comment' => 'hello'), array('day_id' => '3', 'comment' => 'vodka3'),array('day_id'=>'','comment'=>'')));
$arrComment = json_decode($comment, true);
$imgarr=array();
for($i=0;$i<count($arrComment);$i++){
    if($arrComment[$i]['day_id']=='' && $arrComment[$i]['comment']==''){
        unset($arrComment[$i]);
    }
}
$arrComment=array_values($arrComment);
print_r($arrComment);
?>

这里,当我的多元素键值为空时,它不起作用。但如果只有一个案例,它就起作用了。这里我需要的是,如果元素
day\u id和comment
中的任何一个为空,那么这些元素将从该json对象中删除,并再次重新编制索引。请帮助我。

完成
取消设置($arrcoment[$i])数组长度减少。因此,
count($arrcoment)
不是4,而是3。这就是您的最后一个元素未到达的原因。要避免这种情况,请在启动循环之前使用
count()

$cou = count($arrComment);
for($i=0; $i<$cou; $i++){
    if($arrComment[$i]['day_id']=='' && $arrComment[$i]['comment']==''){
        unset($arrComment[$i]);
    }
}
执行
unset($arrcoment[$i])后数组长度减少。因此,
count($arrcoment)
不是4,而是3。这就是您的最后一个元素未到达的原因。要避免这种情况,请在启动循环之前使用
count()

$cou = count($arrComment);
for($i=0; $i<$cou; $i++){
    if($arrComment[$i]['day_id']=='' && $arrComment[$i]['comment']==''){
        unset($arrComment[$i]);
    }
}

这不是JSON,这是一个PHP数组。@Rax Weber他只是为了更好的问题对其进行编码和解码。这不是JSON,这是一个PHP数组。@Rax Weber他只是为了更好的问题对其进行编码和解码。