$a = array ('x' => 2, 'y' => 3);
$b = array ( 'y' => 2, 'z' => 3);
// $c = $a * $b;
// i would like to have
// $c = array ('x' => 0, 'y' => 6, 'z' => 0);
0
A
回答
2
如果您想将任意相似的按键相乘,您需要获取按键列表。 array_keys似乎只是它的功能。
function foo($a, $b)
{
foreach(array_keys($a) as $i)
{
if(array_key_exists($i, $b){ // exists in a and b
$result[$i] = $a[$i]*$b[$i];
}else{ // exists and a but not b
$result[$i] = 0;
}
}
foreach(array_keys($b) as $i)
{
if(not array_key_exists($i, $a){ //exists in b but not i a
$result[$i] = 0;
}
}
return $result
}
这将(希望)适用于任何一组键,而不仅仅是x,y和z。
0
你将不得不使用图书馆或自己定义的叉积:
function cross_product($a, $b)
{
return array($a['y'] * $b['z'] - $a['z'] * $b['y'], ...
}
http://en.wikipedia.org/wiki/Cross_product
的你在做什么进一步的检查后,它看起来好像你想沿线的东西:
function multiply_arr($a, $b)
{
return array($a['x'] * $b['x'], $a['y'] * $b['y'], $a['z'] * $b['z]);
}
再次,你将不得不作出自己的功能,你应该做一些错误检查,以防万一值未定义。
0
3D Captcha已得到你要的东西。虽然你可能需要做一些错误检查。
1
你可以使用array_map和滥用bcmul为了这个目的:
array_map('bcmul', $a, $b) == $a * $b
相关问题
- 1. 如何互相乘以未知数量的php数组值?
- 2. PHP合并数组中的相似值
- 3. php数组中的相似值
- 4. 乘以我的数组值
- 5. 将微调值与数组值相乘
- 6. 工资数组乘以值
- 7. 如何将整数与数组中的值相乘?
- 8. 如何将整数或double与数组中的值相乘?
- 9. 从数组中乘以数值
- 10. PHP数组值数组键
- 11. PHP数组值键
- 12. 如何乘数组中的所有值?
- 13. 乘以数值
- 14. PHP将数组键值(在相同的数组中)组合以创建新的键值
- 15. 如何使在PHP中的键和值的数组的值?
- 16. 在阵列数组中,我如何将每个值乘以不同的乘数
- 17. PHP数组键的值
- 18. 如何在PHP中将数组的键添加到数组值?
- 19. 分配数组键的值相同的数组PHP
- 20. 基于php中的键组数组值?
- 21. 多维数组的PHP乘法值
- 22. PHP数组的键数组值插入
- 23. 如何使用PHP将数组排序为相同的键值?
- 24. 如何从键返回PHP数组值?
- 25. 如何匹配PHP数组中的值然后找到键值?
- 26. 键在数组中相同的值
- 27. 如何将PHP表中的两个值相乘以获得总数?
- 28. 处理PHP数组列表以找到包含相同键/值的数组
- 29. PHP数组由键值对
- 30. 数组变量键/值PHP
这听起来像你想要做的跨产品或点的产品。是这样吗? – zzzzBov 2010-11-05 18:56:10
我认为是的:) – Mohammad 2010-11-05 19:11:37