我尝试将$qty_test
和 $get_ltr
相乘,也就是数据类型是整数,但这给了我错误
不受支持的操作数类型
代码中发布的内容。
$qty_test=explode(",",$request->input('qty'));
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
$ltr[] = $get_ltr->ltr;
$total_ltr= $qty_test * $ltr;
}
给我一个错误,如何乘以它,请帮助我。
答案 0 :(得分:0)
您应该尝试以下操作:
$total_ltr = array_map(function () {
return array_sum(func_get_args());
}, $qty_test, $get_ltr->ltr);
答案 1 :(得分:0)
获取所有行乘法
$qty_test=explode(",",$request->input('qty'));
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
$ltr = $get_ltr->ltr;
$total_ltr[]= $qty_test * $ltr;
}
print_r($total_ltr);
答案 2 :(得分:0)
使用explode()后,您会忘记$ qty_test具有数组值。因此,您必须使用array_sum()对所有$ qty_test数组求和并将其乘以各自的值。
尝试
$qty_test=explode(",",$request->input('qty'));
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
$ltr[] = $get_ltr->ltr;
}
$total_ltr= array_sum($qty_test) * array_sum($ltr);
echo $total_ltr;
希望这对您有帮助
答案 3 :(得分:0)
您需要在此处使用array_sum
方法
两个数组的总和的第一个看起来像这样。
例如
$arrayOne = [5,10,15]; //total is 30
$arrayTwo = [5,10]; //total is 15
$sumOfTwoArray = array_sum($arrayOne) * array_sum($arrayTwo);
输出为(30 * 15):450
现在在您的代码中进行修改
$qty_test=explode(",",$request->input('qty'));
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
$ltr[] = $get_ltr->ltr;
}
$total_ltr= array_sum($qty_test) * array_sum($ltr); //used array_sum method here in both array
仅获得每行qty和ltr的乘积,然后像这样使用
$array = [5,10,15];
$ltr = ['5','10'];
$array1 = array_map(function ($v) use ($array) {
info("v ;- ".$v);
return array_map(function ($a) use ($v){
info("a :- ".$a." v :- ".$v);
return $a * $v;
},$array);
},$ltr);
//info("total is :- ".print_r($array1,true));
答案 4 :(得分:0)
#1 -如果要获取每个值的每个乘法,请遵循以下代码:
$qty_test=explode(",",$request->input('qty'));
$ltr = [];
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
array_push($ltr, $get_ltr->ltr);
}
$total_ltr = [];
foreach($qty_test as $i=>$val){
array_push($total_ltr, $qty_test[$i] * $ltr[$i]);
}
....
....
#2 -但是,如果要对first array
中的所有值求和并将其与second array
中的值总和相乘,请遵循以下代码:
$qty_test=explode(",",$request->input('qty'));
$ltr = [];
foreach ($part_id as $part_ids) {
$get_ltr = part::where('status',1)->where('part_no',$part_ids)->first();
array_push($ltr, $get_ltr->ltr);
}
$total_ltr= array_sum($qty_test) * array_sum($ltr);
。
array_sum()
将对数组中的所有值求和,例如
echo array_sum([23,14,45]);
// will return 82 (23 + 14 + 45)
。
有关更多详细信息,您可以参考关于array_sum()
的{{3}}
答案 5 :(得分:0)
很抱歉,不久前我的答复很晚,我遇到了将数组中所有值都乘以多个的情况,最后创建了函数
例如;
$multiplicationArrays = ['10','10','50'];
是我的数组
我的预期结果是5000
所以我已经创建了函数
function multiplyArray($numbersArray='')
{
//defining the error messages
$errorMessage = "Minimum Two Numbers is required";
//check if atleast two numbers in array
$isMultiplicable = count($numbersArray);
if ($isMultiplicable < 2 )
{
//if fails return the errormessage
return $errorMessage;
}
else
{
//initializing the resilt as one for the first time
$result = 1;
foreach ($numbersArray as $numbersArray)
{
//on the each multiple an store it in the result varialbe
$result *= $numbersArray;
}
//return the result
return $result;
}
}
并最终在函数内部传递数组
echo multiplyArray($multiplicationArrays);
结果将与预期的5000
希望有帮助