首页 > 解决方案 > 如果找到此键,则在 foreach 循环上取消设置关联数组

问题描述

我有一个数据数组,我只想检查是否找到了这个键,因为如果是我将取消设置某个数组

这将是我的示例数组:

Array
(
  [2019-01-01] => Array(
     [1] => Array(
        ['OLD'] => Array(
          [0] => Array(
            ['id']=>1,
            ['name']=>full name
          )
        )
        ['NEW'] => Array(
          [0] => Array(
            ['id']=>2,
            ['name']=>full name
          )
        )
     )
  )
  [2019-01-02] => Array(
     [1] => Array(
        ['OLD'] => Array(
          [0] => Array(
            ['id']=>5,
            ['name']=>full name
          )
        )
     )
  )
)

我有这个代码:

foreach ($my_array as $key=>$val) {
  foreach ($val as $key=>$val) {
    foreach ($val as $key=>$val) {
      // I wanted to check in this part if this array has `$key` OLD and `$key` NEW, if it has new then unset OLD
    }
  }
}

我的预期结果是如果有 NEW 将删除 OLD,但如果没有 NEW 则保留 OLD 数组。在这里使用的正确array功能是什么?

标签: phpcodeigniter

解决方案


简单的array_walk()可能会帮助你。例子:

array_walk($arr, function (&$item) {
    if(isset($item[1]['OLD'], $item[1]['NEW'])) unset($item[1]['OLD']);
});

推荐阅读