【问题标题】:Set Array Equal to Another Array without Specified Key/Values [duplicate]将数组设置为等于另一个没有指定键/值的数组[重复]
【发布时间】:2017-07-10 14:48:54
【问题描述】:

我试图反映newArray = oldArray 的行为,但要注意排除oldArray 的一些键/值,例如newArray = oldArray - undesiredOldKeyValue。我意识到这完全可以通过oldArray 上的foreach 和使用if 来查看是否需要遇到的密钥,但如果可能的话,我对更简单或更简洁的方法感兴趣。

有几件事要记住,我需要根据键而不是值来排除键/值对。我不想在这样做的过程中修改oldArray

【问题讨论】:

标签: php arrays


【解决方案1】:

您可以尝试使用array_filer。比如:

$new_array = array_filter($old_array, function ($value, $key) {
    // return false if you don't want a value, true if you want it.
    // Example 1: `return $value != 'do not keep this one';`
    // Example 2: `return !in_array($key, ['unwanted-key1', 'unwanted-key2', 'etc']);`
}, ARRAY_FILTER_USE_BOTH);

它将使用回调函数过滤数组的元素。

【讨论】:

  • return ! in_array($key, ['undesired-key1', 'undesired-key2', 'etc']);
  • array_filter() 的调用需要第三个参数才能将键也传递给回调。
  • @axiac 谢谢,我加了两个例子!
  • @axiac 哈哈再次感谢!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多