使用 array_map php 查找数组中的所有负数
find all the negative numbers in the array using array_map php
我有这个测试数组
$test = array(-10,20,40,-30,50,-60);
我希望输出为
$out = array (-10, -30, -60);
这是我的解决方案:
$temp = array();
function neg($x)
{
if ($x <0)
{
$temp[] = $x;
return $x;
}
}
$negative = array_map("neg", $test);
当我打印 $negative
时,我得到了我想要的,但有些条目为空。我可以在回调函数中做些什么来不记录空条目吗?
Array
(
[0] => -10
[1] =>
[2] =>
[3] => -30
[4] =>
[5] => -60
)
1
当我打印 $temp
数组时,我以为我会得到我的答案,但它打印了一个空数组。我不明白为什么,我正在清除将 $x
添加到回调函数中的 $temp[]
数组。有什么想法吗?
print_r($temp);
// outputs
Array
(
)
1
array_map
将 return 当条件满足时 value
和 return NULL
如果条件不满足。在这种情况下,您可以使用 array_filter
.
$test = array(-10,20,40,-30,50,-60);
$neg = array_filter($test, function($x) {
return $x < 0;
});
输出
array(3) {
[0]=>
int(-10)
[3]=>
int(-30)
[5]=>
int(-60)
}
如果您继续使用 array_map
那么我建议在完成后应用 array_filter
一次 -
$negative = array_map("neg", $test);
$negative = array_filter($negative);
输出相同。
我有这个测试数组
$test = array(-10,20,40,-30,50,-60);
我希望输出为
$out = array (-10, -30, -60);
这是我的解决方案:
$temp = array();
function neg($x)
{
if ($x <0)
{
$temp[] = $x;
return $x;
}
}
$negative = array_map("neg", $test);
当我打印 $negative
时,我得到了我想要的,但有些条目为空。我可以在回调函数中做些什么来不记录空条目吗?
Array
(
[0] => -10
[1] =>
[2] =>
[3] => -30
[4] =>
[5] => -60
)
1
当我打印 $temp
数组时,我以为我会得到我的答案,但它打印了一个空数组。我不明白为什么,我正在清除将 $x
添加到回调函数中的 $temp[]
数组。有什么想法吗?
print_r($temp);
// outputs
Array
(
)
1
array_map
将 return 当条件满足时 value
和 return NULL
如果条件不满足。在这种情况下,您可以使用 array_filter
.
$test = array(-10,20,40,-30,50,-60);
$neg = array_filter($test, function($x) {
return $x < 0;
});
输出
array(3) {
[0]=>
int(-10)
[3]=>
int(-30)
[5]=>
int(-60)
}
如果您继续使用 array_map
那么我建议在完成后应用 array_filter
一次 -
$negative = array_map("neg", $test);
$negative = array_filter($negative);
输出相同。