2011-02-11 69 views
1

在PHP數組執行位操作是有這樣的一個陣列上運行各種測試的一個很好的方式...上的布爾

array(true, false, true, false, false); 

要說給我所有這些元素的結果或結果?

通過很好我的意思是建在不需要每次都圍繞結構循環。

+0

這是1:1的作業分配副本,還是你只是一個老師,「不能突破它」? – Cadoc 2011-02-11 10:48:24

+0

都不是。我不認爲這是特別的'家庭作業' – Toby 2011-02-11 10:56:20

回答

5

您可以使用(bool) array_sum($array)得到OR結果,並(bool) array_product($array)得到AND結果。

這工作,因爲PHP把布爾和整數(零爲false,其他一切都是true),以及如何邏輯(或按位)OR可以通過添加而邏輯(或按位)相關聯的方式AND與乘法有關。

0

你可以implode陣列,並做一個binary to decimal就可以了。 然後,您只需對結果執行Switch即可完成不同標誌所代表的內容。

這是因爲你的布爾數組基本上是一個5位二進制值。

在將implode轉換爲十進制值之前,可能需要填充implode後面的一些前導零,因爲bin2dec很滑稽。