hi我在php
中有多维数组,我想从每个数组中删除一个索引,我的数组就像这个
Array
(
[0] => Array
(
[ProfilePrivacySettingDefaultID] => 1
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[1] => Array
(
[ProfilePrivacySettingDefaultID] => 2
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[2] => Array
(
[ProfilePrivacySettingDefaultID] => 3
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[3] => Array
(
[ProfilePrivacySettingDefaultID] => 4
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
);
我想要所有数组的索引ProfilePrivacySettingDefaultID
,所以最终结果会像这个
Array
(
[0] => Array
(
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[1] => Array
(
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[2] => Array
(
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
[3] => Array
(
[UserType] => 2
[Type] => 1
[EntityID] => 0
[PrivacySettingPublic] => 1
[PrivacySettingElephantiUser] => 1
[PrivacySettingFriend] => 1
[IsValid] => 1
[CreatedOn] => 1330580809
[CreatedBy] => 0
[UpdatedOn] => 0
[UpdatedBy] => 0
)
);
做这件事最好的方法是什么,非常感谢。。。。。。。。。。。。。。
您可以很容易地使用array_map
来执行此操作,使用unset
来删除索引。示例:
$your_array = array_map(
function($array) {
unset($array['ProfilePrivacySettingDefaultID']);
},
$your_array
);
我认为foreach是最有效的方法。
所以
foreach($user_array as $key => $value){
unset($user_array[$key]['ProfilePrivacySettingDefaultID']);
}
或
foreach($user_array as &$value){
unset($value['ProfilePrivacySettingDefaultID']);
}
array_map只需要做比所需多得多的工作,而使用匿名函数作为array_map回调只会适得其反。
$user_array = array_map(
function($value){
unset($value['ProfilePrivacySettingDefaultID']);
return $value;
}, $user_array
);
function array_map ( $callback , $array){
foreach($array as $key => &$value){
$value = call_user_func( $callback, $value );
// which is equal to
/*function my_callback($value){
unset($value['ProfilePrivacySettingDefaultID']);
return $value;
}
$value = my_callback();*/
}
return $array;
}
我只需要迭代数组并取消设置特定值:
foreach($array AS $value){
unset($value['ProfilePrivacySettingDefaultID']);
}