0

我当前的$input数组如下Array ( [0] => 15 [1] => 250 [2] => 18|1.0 [3] => 70 [4] => 9.0 )

如何在$input[2]不导致Notice: A non well formed numeric value encountered in .... 错误的情况下获取上面的拆分值错误是因为拆分 | 不知道要选择哪个数字。有没有办法说number before splitnumber after split因为我现在需要分别引用这些值来计算。

任何帮助表示赞赏

4

1 回答 1

0

问题是您存储的$input[2]不是字符串,而是按位运算 | (OR)= number的结果19。因此,当您想对该变量执行任何数学运算时,您将始终得到数字 19。

恢复bitwise OR操作是不可能的。

$number = 18 | 1.0;
$string_number = "18|1.0";

var_dump($number); // int(19)
var_dump($string_number); //string(6) "18|1.0"

$string_number_array = explode('|', $string_number);

var_dump($string_number_array[0]); // string(2) "18"
var_dump($string_number_array[1]); // string(3) "1.0"
var_dump((int)$string_number_array[0]); // double(18)
var_dump((double)$string_number_array[1]); // double(1)
于 2020-05-12T03:16:32.323 回答