$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. 將微調值與數組值相乘
- 4. 工資數組乘以值
- 5. 如何將整數與數組中的值相乘?
- 6. 如何將整數或double與數組中的值相乘?
- 7. PHP數組值數組鍵
- 8. PHP數組值鍵
- 9. 乘以數值
- 10. PHP數組鍵的值
- 11. 如何使在PHP中的鍵和值的數組的值?
- 12. 在陣列數組中,我如何將每個值乘以不同的乘數
- 13. 分配數組鍵的值相同的數組PHP
- 14. 如何使用PHP將數組排序爲相同的鍵值?
- 15. 如何將PHP表中的兩個值相乘以獲得總數?
- 16. 處理PHP數組列表以找到包含相同鍵/值的數組
- 17. 數組變量鍵/值PHP
- 18. PHP數組由鍵值對
- 19. PHP多維數組鍵值
- 20. 在php中定義數組鍵值php
- 21. php:如何合併和求和相同鍵值的數組的值?
- 22. 按乘積值排序php數組
- 23. 如何通過鍵中的鍵獲取數組值鍵值
- 24. 如何獲得主數組鍵的子數組值? [Php]
- 25. php如何獲得數組的數組鍵值
- 26. 訪問PHP數組中的鍵值對
- 27. PHP:數組可以有一個數組作爲鍵值對中的鍵嗎?
- 28. PHP:拆分數組值鍵和值
- 29. 如何在PHP中的關聯數組中的另一個鍵的值相同時彙總不同鍵的值?
- 30. 如何追加數組中的值,如果關鍵是相同
這聽起來像你想要做的跨產品或點的產品。是這樣嗎? – zzzzBov 2010-11-05 18:56:10
我認爲是的:) – Mohammad 2010-11-05 19:11:37