为了账号安全,请及时绑定邮箱和手机立即绑定

从 foreach 中删除整个数组

从 foreach 中删除整个数组

PHP
不负相思意 2023-10-15 15:42:05
我正在尝试过滤并删除与特定值匹配的数组。我从 API 获取 JSON,然后使用 PHP json_decode 对其进行解码。它显示得很好,但它给出了我不想要的值。JSON 文件 = https://pastebin.com/raw/7yW1CEdu我正在使用以下 foreach 语句,该语句可以工作并显示我需要的每个统计数据的数据(为了专注于删除数组,我已将其剥离):<?php foreach($json['response']['data'] as $item) {           $newarray = array_filter($item['competitionName'], function($var) {        return ($var != 'Junior SS Premiership Zone 3');    });  }?>这就是我希望它与当前外观相比的样子 - https://gyazo.com/d8654cc939dba9e0e52f06e66f489323我的 array_filter 代码有什么问题?我希望它删除任何明确声明的数组: "competitionName":"Junior SS Premiership Zone 3"因此该数组中的任何数据都不会在 foreach 中处理。谢谢!
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

$item['competitionName']是一个字符串,而不是字符串数组。我想你想要的是:


$data = array_filter($json['response']['data'], function ($item) {

    return $item['competitionName'] != 'Junior SS Premiership Zone 3';

});

foreach ($data as $item) {

    // display the data

}

或者不要理会过滤器,只需在主循环中检查它并跳过它。


foreach ($json['response']['data'] as $item) {

    if ($item['competitionName'] == 'Junior SS Premiership Zone 3') {

        continue;

    }

    // process the item

}


查看完整回答
反对 回复 2023-10-15
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信