无法使用PHP删除JSON中的元素
我有个问题。我需要使用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
$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他只是为了更好的问题对其进行编码和解码。