我不想在我的代码中使用foreach循环并从数组中取消设置数组元素,所以我尝试了下面的代码,但它没有按预期工作。
<?php
$arr = array(array('0'=>'test','1'=>'test1','images'=>'data'),array('0'=>'test','1'=>'test1','images'=>'data'),array('0'=>'test','1'=>'test1','images'=>'data'),array('0'=>'test','1'=>'test1','images'=>'data'));
$arr1 = array_filter($arr,function ($item) use ($my_value) {
if(array_key_exists('images',$item)) {unset($item['images']);}
return $item;});
echo "<pre>";
print_r($arr1);
echo "</pre>";
die;
我想从数组中删除键'images',但这段代码会返回实际的数组。
此代码中的错误是什么?
答案 0 :(得分:2)
使用 array_map(),而不是使用array_filter
,
array_map()
将映射数组的每个值,并使用新值创建一个新数组,并执行新操作。
$arr1 = array_map(function($tmp) { unset($tmp['images']); return $tmp; }, $arr);
array_map()的 Reference Link 。
答案 1 :(得分:1)
您可以使用array_map()而不是array_filter()
$ cat tempfile
1.2.3.4 34
1.2.3.5 23
1.2.3.6 22
$ cat tempfile | logresolve
hostname1 34
hostname2 23
hostname3 22
答案 2 :(得分:0)