我有這種多維數組,其保持這些內數組值值減法:在陣列計數值,並加入部分計數以及在陣列
Array_X (
[0] => Array ([0] => A [1] => D [2] => C [3] =>B)
[1] => Array ([0] => A [1] => D [2] => E)
[2] => Array ([0] => A [1] => E [2] => D)
[3] => Array ([0] => D [1] => A [2] => B)
[4] => Array ([0] => D [1] => A [2] => C)
[5] => Array ([0] => D [1] => E)
[6] => Array ([0] => D [1] => E [2] => E [3] =>A)
)
在該第一陣列,我執行「A的計數「和」D「在這些數組中的位置[0]。 「A」出現3次,並且「d」出現4次,而在另一個1名維陣列存儲此爲:
Array_count_1 ([A] => 3 [D] => 4)
我然後從所有這些內陣列消除「A」(通過「未設置」),和結束:
Array_Y (
[0] => Array ([0] => **D** [1] => C [2] => B [3] =>)
[1] => Array ([0] => **D** [1] => E [2] => )
[2] => Array ([0] => **E** [1] => D [2] => )
[3] => Array ([0] => D [1] => B [2] => )
[4] => Array ([0] => D [1] => C [2] => )
[5] => Array ([0] => D [1] => E)
[6] => Array ([0] => D [1] => E [2] => E [3] =>A)
)
利用該第二新的數組然後我需要在其上出現的第一個元素[0]的所有值進行計數。在這個新數組(Array_Y)中,「D」被計數6次,而「E」1次位於[0]位置。
Array_count_2 ([D] => 6 [E] => 1)
問題:
但在陣列Array_count_2,而不是授予一個完整的點d,E等,它們的每個實例打動了我:
Array_count_2 ([D] => 6 [E] => 1)
我想在每個實例中獲得位置[0]的值(在值「A」被消除之後)授予一個部分點(即,當計數完成時爲0.25,而不是默認值1)。如圖所示,在'Array_X'中,當「A」被消除時,值「D」將以2個數組(或2次)移位到[0],並且值「E」被移位到位置1個數組中的[0](或1次))。他們的新職位見於'Array_Y'。
代替:
Array_count_2 ([D] => 6 [E] => 1)
我想陣列爲:
Array_count_2 ([D] => 4.50 [E] => 0.25)
d:從位置[0]在數組 '陣列_X' 4點,2點乘以0.25 (被授予的部分點)移動到陣列'Array_Y'中看到的位置[0]),總共0.50
E:1點乘以0.25點爲TS被轉移到位置[0]看到陣列「陣列_Y」共0.25
我認爲這裏的關鍵是在做計數獲得:
Array_count_1 ([A] => 3 [D] => 4)
和
Array_count_2 ([D] => 6 [E] => 1)
則:
Array_count_2 - Array_count_1
所以我結束了
Array_count_3 ([D] => 2 [E] => 1)
我將如何執行這一減法獲得像「Array_count_3」的數組?
我會那麼需要採取 'Array_count_3' 和乘用(0.25)每個值來獲得:
Array_count_4 ([D] => 0.50 [E] => 0.25)
然後添加 'Array_count_4' + 'Array_count_1'
Array_count_1 ([A] => 3 [D] => 4)
Array_count_4 ([D] => 0.50 [E] => 0.25)
獲得最終陣列:
Array_count_2 ([D] => 4.50 [E] => 0.25)
沒有「A」的存在(因爲它被淘汰了)?
感謝您抽出寶貴時間,耐心等待!欣賞它!
其實'unset'不會改變任何東西。 'array_splice'將會。如果你通過unser取消枚舉數組的第一個元素,你會得到像這樣的結果:'(1 => value,2 => value ...' –
比使用array_splice更容易array_shift – Matt