删除包含特定值的Json行

时间:2015-05-11 21:53:14

标签: php json

我有一个带有三个值的Json输出。

var current = $("[data-month='february']");
var other = current.parent().children().eq(current.index() + offset);

我想删除ID等于2的行,并输出:

{"contacts":[{"id":"1","name":"one"},{"id":"2","name":"two"},{"id":"3","name":"three"}]}

我的代码

 {"contacts":[{"id":"1","name":"one"},{"id":"3","name":"three"}]}

我该怎么做?感谢

2 个答案:

答案 0 :(得分:1)

除了显而易见的:

while($row = mysqli_fetch_assoc($result))
{
    if ($row['id'] != '2') { $output[] = $row; }
}

您正在做的是返回数组,但是它的过滤版本。所以使用array_filter

$json = json_encode(array(
            'contacts' => array_filter(function($row) {
                 return $row['id'] != '2';
             }, $output)
         ));

由于您是从查询中获取结果,因此您还可以将WHERE id != 2添加到查询中,以便它不会重新开始。

答案 1 :(得分:0)

这是一种方式,它取决于你想要改变它的位置。就在您的控制器中,例如,像这样

$output = array();
while($row = mysqli_fetch_assoc($result))
{
$output[] = $row;
}

$newValue = 2;

foreach($output as $key => $v){
    if($key === 'id'){
        $output[$key] =  $newValue;
    }

}

$json = json_encode(array(
"contacts" => $output
));