我有一个带有三个值的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"}]}
我该怎么做?感谢
答案 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
));