该数组中包含正值和负值。
$arr_pn = array( 1, -1, 2, 10,-15 );
我的问题是如何将所有负值分开并存储在一个数组中,将正值存储在另一个数组中?
$arr_p = array();
$arr_n = array();
foreach ($arr_pn as $val) {
if ($val >= 0) {
$arr_p[] = $val;
}
else {
$arr_n[] = $val;
}
}
与其创建两个数组,不如删除所有负数,只留下正数:
$neg = array();
foreach( $arr_pn as $key => $num ) {
if ( $num < 0 ) {
unset( $arr_pn[ $key ] );
array_push( $neg, $num );
}
}
演示:http ://codepad.org/TCwXYn2P
一个警告是原始数组将缺少键。因此,如果您打算计算它们,请考虑这一点。您可以使用array_values()
重新键入数组:
$arr_pn = array_values( $arr_pn );
如果你想要两个数组:
$neg = array();
$pos = array();
foreach( $arr_pn as $num ) {
$num < 0
? array_push( $neg, $num )
: array_push( $pos, $num ) ;
}
$arr_pn = array( 1, -1, 2, 10,-15 );
$arrayPositive = array_filter($arr_pn, function($value) { return $value > 0.0; } );
$arrayNegative = array_filter($arr_pn, function($value) { return $value < 0.0; } );
var_dump($arrayPositive);
var_dump($arrayNegative);