我不确定我是否正确地写了这个问题,但更详细地说明了我需要的东西。
我有两个对象,我需要更改为数组,它们有1,2,3键,但它们有不同的值我需要从数组中减去键的值相同,我希望这是有道理的。
我尝试过的事情
所有帮助表示将提供所需的更多信息
示例数组:
阵列1
1 => 300.00,
2 => 300.00,
3 => 300.00
数组2
1 => 200.00,
2 => 200.00,
3 => 200.00
期望的输出
1 => 100.00,
2 => 100.00,
3 => 100.00
答案 0 :(得分:1)
这个的最佳选择似乎是for循环
$arr1 = [300, 300, 300];
$arr2 = [200, 200, 200];
$arr_length = sizeof($arr1) -1;
$minus_arr = [];
for($i = 0; $i <= $arr_length; $i++){
$minus = $arr1[$i] - $arr2[$i];
array_push($minus_arr, $minus);
}
print_r($minus_arr);
我认为你上面给出的数组是理所当然的,听起来你正在使用的数组要么大小不同,要么有字符串或空值,所以先检查一下int。
<?php
$arr1 = [300, 300, 300];
$arr2 = [200, 200, 200];
$arr_length = sizeof($arr1) -1;
$minus_arr = [];
for($i = 0; $i <= $arr_length; $i++){
if(is_int($arr1[$i]) && is_int($arr2[$i])){
$minus = $arr1[$i] - $arr2[$i];
array_push($minus_arr, $minus);
}
}
print_r($minus_arr);
答案 1 :(得分:1)
我希望我不会误解你的问题。
我的方法遍历2个数组,每当它们的键相同时,执行操作。这是一个例子:
function diff($arr1, $arr2) {
$result = [];
foreach($arr1 as $key1 => $value1) {
foreach($arr2 as $key2 => $value2) {
if ($key1 == $key2) {
$result[$key1] = $value1 - $value2;
}
}
}
return $result;
}
我看到你的标签中有Laravel,如果你正在使用laravel,我相信你可以通过Collection更好地实现这一目标。该文件是here。它为您提供了更多'OO'方式(类似于javascript),您可以在php中操作数组。
答案 2 :(得分:1)
对于索引数组,
>>> "".join(str(ord(x)) for x in getname)
'116101115116'