0

この配列には、正の値と負の値が含まれています。

$arr_pn = array( 1, -1, 2, 10,-15 );

私の質問は、すべての負の値を分離して配列に格納し、正の値をもう1つの配列に格納する方法です。

4

3 に答える 3

6
$arr_p = array();
$arr_n = array(); 
foreach ($arr_pn as $val) {
    if ($val >= 0) {
        $arr_p[] = $val;
    }
    else {
        $arr_n[] = $val;
    }
}
于 2012-05-24T16:24:31.763 に答える
4

元の配列を減らす

2つの配列を作成するのではなく、すべての負の数を削除して、正の数だけを残します。

$neg = array();
foreach( $arr_pn as $key => $num ) {
  if ( $num < 0 ) {
    unset( $arr_pn[ $key ] );
    array_push( $neg, $num );
  }
}

デモ:http ://codepad.org/TCwXYn2P

警告の1つは、元の配列にキーがないことです。したがって、それらを数えることを計画している場合は、これを考慮してください。array_values()配列のキーを再設定するために使用できます。

$arr_pn = array_values( $arr_pn );

結果として得られる2つの配列

2つのアレイが必要な場合:

$neg = array();
$pos = array();

foreach( $arr_pn as $num ) {
  $num < 0 
    ? array_push( $neg, $num ) 
    : array_push( $pos, $num ) ;
}

デモ:http ://codepad.org/pHVyTRMc

于 2012-05-24T16:31:56.840 に答える
3
$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);
于 2012-05-24T16:40:08.507 に答える