0

I am trying to make statement : while calculation in array_sum if $stoploss is null in array, then use $stoploss as $exit_price

in below statement:

$expectancy_a = array_sum(($exit_price - ($stoploss)))/$number_trades;

$stoploss has below value:

array:10 [▼
  0 => null
  1 => null
  2 => 425
  3 => null
  4 => 77
]

how can i say in that statement, if $stoploss has null value then, take $exit_price as $stoploss.

I tired with if condition:

if (in_array(null, $stoploss, true)) {
$r_multiple[] = ($exit_price - $entry_price) / ($entry_price - $stoploss);
}

1 Answers1

3

You should consider mapping $stoploss with a closure that uses null-coalescing:

$corrected = array_map(function($value) use ($exit_price) {
    return $value ?? $exit_price;
}, $stoploss);

This will convert all null values to $exit_price from the $stoploss array.

Devon Bessemer
  • 34,461
  • 9
  • 69
  • 95
  • Beat me too it, consider a link to the documentation too though? http://php.net/manual/en/function.array-map.php – Matthew Usurp Aug 07 '18 at 15:12
  • @KinnariPrajapati, your suggested edit seems off, $corrected is still an array. You still need to use array_sum or you could do null-coalescing in an array_reduce function instead of mapping then summing. – Devon Bessemer Aug 07 '18 at 15:17