如果我的值ID等于1并搜索数组,我想从数组本身中删除,如果找到,则ID为1。
Array (
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 4
)
[2] => Array
(
[id] => 5
)
[3] => Array
(
[id] => 7
)
)
新数组
Array (
[0] => Array
(
[id] => 4
)
[1] => Array
(
[id] => 5
)
[2] => Array
(
[id] => 7
)
)
我正在使用search_array,我假设因为它是多维的,所以没有找到它。有没有办法搜索上面的数组?
答案 0 :(得分:7)
如果您只检查一个值,为什么不使用foreach循环?
foreach ( $arr as $key => $value )
{
if ( $value['id'] == '1' )
{
unset( $arr[$key] );
}
}
答案 1 :(得分:3)
另一种方法是(假设您过滤掉整数1
的ID):
$filtered = array_filter($arr, function ($val) { return $val['id'] !== 1; });
注意上面使用了带有匿名函数的狡猾命名的array_filter
函数作为回调(它进行过滤;如果首选,你可以使用'普通'命名函数,或者如果你不接受PHP 5.3尚未)。
答案 2 :(得分:2)
$arr = array(/* your array */);
$remove = 1;
foreach($arr as $key=>$val){
if($val['id'] == $remove){
unset($arr[$key]);
}
}