我有一个多维关联数组,其中有一个名为type
的属性。它看起来像这样:
$data = array(
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "C"),
array( "name" => "SomeName", "type" => "C")
);
我希望重新排列它,使物品更平均地分布(如果可能的话,减少重复类型的数量)。 它应该看起来像这样:
array(
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "C"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "B"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "C"),
array( "name" => "SomeName", "type" => "A"),
array( "name" => "SomeName", "type" => "B")
);
到目前为止,我尝试的是找到每种类型和总数的计数:
$count_a = 5;
$count_b = 3;
$count_c = 2;
$total = 10;
并且每种类型的比率比:
$ratio_a = 0.5; //(5/10)
$ratio_b = 0.3; //(3/10)
$ratio_c = 0.2; //(2/10)
我现在卡住了。我应该尝试创建一个名为index
的数字属性,然后根据它进行排序吗?还是可以使用模运算符?如果可能的话,我也尝试将项目分成3个不同的数组。