$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