php - 删除关联数组中的键不起作用

标签 php arrays associative-array

我试图只保留某些 key ,并从外部 API 中删除其余 key 。我有一个数组(http://pastebin.com/vU8T4y7h),包含对象的“数据”:

foreach ($data as $media) {
    foreach (array_keys($media) as $media_key) {
        if ($media_key!=="created_time" && $media_key!=="likes" && $media_key!=="images" && $media_key!=="id") {
            unset($media[$media_key]);
        }
    }
}

在这种情况下,我试图只保留 created_timelikesimagesid键,但是,上面的代码不起作用。关于为什么的任何想法?任何其他优雅的解决方案来实现同样的事情?

最佳答案

这不起作用的原因是因为您没有取消原始 $data 对象的设置。您可以通过以下两种方式之一修复它。通过引用访问或更新您的 unset 以改为对原始 $data 对象执行操作。

使用引用:

foreach($data as &$media) {

$data 取消设置

unset($data[$media][$media_key]);

关于php - 删除关联数组中的键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13693700/

相关文章:

PHP - 关联数组 : Changing keys for key value pair where value is a class object

php - 替换字符串中偶数位置的所有字符的最简单方法。

PHP 正则表达式 : match text urls until space or end of string

php - 比较页面或 CSV 文件中的关键字 : PHP ? Bash?

javascript - 将对象内部的对象数组作为多个对象 JavaScript

arrays - Swift 为值数组绘制路线

php - 在不知道一对关联数组中的键的情况下获取值

php - 将数据库中的值添加到预填写表单中

java - 将具有随机行数的字符串保存到单行数组JAVA

javascript - 使用 JavaScript 创建关联数组